Comparaison de valeurs avec le type booléen en JavaScript

Dans l'exemple précédent, nous avons utilisé pour la comparaison l'opérateur ===. Dans ce cas, notre variable était comparée à l'égalité de true à la fois en valeur et en type.

Pour une telle comparaison, on peut aussi utiliser l'opérateur ==. Si la variable test contient toujours soit true soit false, alors rien ne change :

javascriptlet test = true; // on écrit ici soit true, soit false

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

Mais si la variable test peut contenir n'importe quelle valeur, alors tout devient beaucoup plus complexe.

Dans un tel cas, si la variable test ne contient pas une valeur booléenne, cette valeur sera d'abord convertie en booléen, et seulement ensuite sera comparée.

Supposons, par exemple, que la variable test contienne le nombre 1. Dans ce cas, il sera d'abord converti en type booléen, c'est-à-dire en true. Ensuite, la comparaison sera effectuée :

javascriptlet test = 1;

if (test == true) {
  console.log('+++'); // c'est ceci qui s'exécutera
} else {
  console.log('---');
}

Mais, par exemple, le nombre 0 se convertit en false. Et notre condition, par conséquent, affichera 'incorrect' :

javascriptlet test = 0;

if (test == true) {
  console.log('+++');
} else {
  console.log('---'); // c'est ceci qui s'exécutera
}

En pratique, une telle comparaison peut être explicitement réécrite de la manière suivante :

javascriptlet test = 1;

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

Rappelez-vous et écrivez quelles valeurs, lorsqu'elles sont converties en type booléen, donnent false.

Задание 2

Sans exécuter le code, déterminez ce qui sera affiché dans la console :

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

Sans exécuter le code, déterminez ce qui sera affiché dans la console :

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

Sans exécuter le code, déterminez ce qui sera affiché dans la console :

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

Sans exécuter le code, déterminez ce qui sera affiché dans la console :

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

Sans exécuter le code, déterminez ce qui sera affiché dans la console :

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

Sans exécuter le code, déterminez ce qui sera affiché dans la console :

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

Sans exécuter le code, déterminez ce qui sera affiché dans la console :

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