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('---');
}
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:
javascriptlet test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Sin ejecutar el código, determine qué se mostrará en la consola:
javascriptlet test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Sin ejecutar el código, determine qué se mostrará en la consola:
javascriptlet test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Sin ejecutar el código, determine qué se mostrará en la consola:
javascriptlet test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Sin ejecutar el código, determine qué se mostrará en la consola:
javascriptlet test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Sin ejecutar el código, determine qué se mostrará en la consola:
javascriptlet test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Sin ejecutar el código, determine qué se mostrará en la consola:
javascriptlet test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}