Comparação de valores com tipo booleano em JavaScript
No exemplo anterior, usamos para comparação
o operador ===. Nesse caso, nossa variável
era comparada por igualdade com true
tanto em valor quanto em tipo.
Para tal comparação, também se pode usar o
operador ==. Se na variável test
sempre houver um dos valores true
ou false, então nada mudará:
let test = true; // aqui escrevemos ou true, ou false
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Mas se na variável test puderem
entrar quaisquer valores, então tudo se torna
muito mais complexo.
Nesse caso, se na variável test
não houver um valor booleano, então esse valor
primeiro será convertido para booleano e só
então será comparado.
Suponha, por exemplo, que na variável test
haja o número 1. Nesse caso, ele primeiro
será convertido para o tipo lógico, ou seja,
para true. E então a comparação será realizada:
let test = 1;
if (test == true) {
console.log('+++'); // isto será executado
} else {
console.log('---');
}
Já o número 0, por exemplo, é convertido
para false. E nossa condição, como resultado,
exibirá 'incorreto':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // isto será executado
}
Na prática, tal comparação pode ser explicitamente reescrita da seguinte forma:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Lembre-se e escreva quais valores,
quando convertidos para o tipo lógico, resultam em
false.
Sem executar o código, determine o que será exibido no console:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Sem executar o código, determine o que será exibido no console:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Sem executar o código, determine o que será exibido no console:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Sem executar o código, determine o que será exibido no console:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Sem executar o código, determine o que será exibido no console:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Sem executar o código, determine o que será exibido no console:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Sem executar o código, determine o que será exibido no console:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}