Comparación de valores con tipo booleano en JavaScript

En el ejemplo anterior usamos para la comparación el operador ===. En este caso, nuestra variable se comparaba por igualdad con true tanto en valor como en tipo.

Para tal comparación también se puede utilizar el operador ==. Si en la variable test siempre hay uno de los valores true o false, entonces nada cambiará:

javascriptlet test = true; // aquí escribimos o true, o false

if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}

Pero si en la variable test pueden entrar cualquier tipo de valores, entonces todo se vuelve mucho más complicado.

En tal caso, si en la variable test hay un valor no booleano, este valor primero se convertirá a booleano y solo después se comparará.

Supongamos, por ejemplo, que en la variable test hay un número 1. En este caso, primero se convertirá al tipo lógico, es decir, a true. Y luego se realizará la comparación:

javascriptlet test = 1;

if (test == true) {
  console.log('+++'); // esto se ejecutará
} else {
  console.log('---');
}

Pero, por ejemplo, el número 0 se convierte a false. Y nuestra condición como resultado mostrará 'incorrecto':

javascriptlet test = 0;

if (test == true) {
  console.log('+++');
} else {
  console.log('---'); // esto se ejecutará
}

En realidad, tal comparación se puede reescribir explícitamente de la siguiente manera:

javascriptlet test = 1;

if (Boolean(test) == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

Recuerde y escriba, qué valores al convertirlos al tipo lógico dan false.

Задание 2

Sin ejecutar el código, determine qué se mostrará en la consola:

javascriptlet test = 1;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 3

Sin ejecutar el código, determine qué se mostrará en la consola:

javascriptlet test = 0;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 4

Sin ejecutar el código, determine qué se mostrará en la consola:

javascriptlet test = 1;
    
if (test == false) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 5

Sin ejecutar el código, determine qué se mostrará en la consola:

javascriptlet test = 1;
    
if (test != true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 6

Sin ejecutar el código, determine qué se mostrará en la consola:

javascriptlet test = '';
    
if (test == false) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 7

Sin ejecutar el código, determine qué se mostrará en la consola:

javascriptlet test;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 8

Sin ejecutar el código, determine qué se mostrará en la consola:

javascriptlet test = 3 * 'a';
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}