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á:
let 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:
let 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':
let 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:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Recuerde y escriba, qué valores al
convertirlos al tipo lógico dan
false.
Sin ejecutar el código, determine qué se mostrará en la consola:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Sin ejecutar el código, determine qué se mostrará en la consola:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Sin ejecutar el código, determine qué se mostrará en la consola:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Sin ejecutar el código, determine qué se mostrará en la consola:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Sin ejecutar el código, determine qué se mostrará en la consola:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Sin ejecutar el código, determine qué se mostrará en la consola:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Sin ejecutar el código, determine qué se mostrará en la consola:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}