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á:

javascriptlet 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:

javascriptlet 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':

javascriptlet 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:

javascriptlet test = 1;

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

Lembre-se e escreva quais valores, quando convertidos para o tipo lógico, resultam em false.

Задание 2

Sem executar o código, determine o que será exibido no console:

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

Sem executar o código, determine o que será exibido no console:

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

Sem executar o código, determine o que será exibido no console:

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

Sem executar o código, determine o que será exibido no console:

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

Sem executar o código, determine o que será exibido no console:

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

Sem executar o código, determine o que será exibido no console:

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

Sem executar o código, determine o que será exibido no console:

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