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 :
let 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 :
let 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' :
let 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 :
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Rappelez-vous et écrivez quelles valeurs,
lorsqu'elles sont converties en type booléen, donnent
false.
Sans exécuter le code, déterminez ce qui sera affiché dans la console :
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Sans exécuter le code, déterminez ce qui sera affiché dans la console :
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Sans exécuter le code, déterminez ce qui sera affiché dans la console :
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Sans exécuter le code, déterminez ce qui sera affiché dans la console :
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Sans exécuter le code, déterminez ce qui sera affiché dans la console :
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Sans exécuter le code, déterminez ce qui sera affiché dans la console :
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Sans exécuter le code, déterminez ce qui sera affiché dans la console :
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}