Confronto di valori con il tipo booleano in JavaScript
Nell'esempio precedente abbiamo utilizzato per il confronto
l'operatore ===. In questo caso, la nostra variabile
veniva confrontata per l'uguaglianza con true
sia per valore che per tipo.
Per un tale confronto si può usare anche
l'operatore ==. Se nella variabile test
ci sarà sempre uno dei valori true
o false, allora nulla cambierà:
let test = true; // qui scriviamo o true, o false
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Ma se nella variabile test possono
essere presenti valori qualsiasi, allora tutto diventa
molto più complicato.
In tal caso, se nella variabile test
non ci sarà un valore booleano, allora questo valore
verrà prima convertito in booleano e solo
dopodiché verrà confrontato.
Supponiamo, ad esempio, che nella variabile test
ci sia il numero 1. In questo caso, verrà prima
convertito al tipo logico, cioè
a true. E poi verrà eseguito il confronto:
let test = 1;
if (test == true) {
console.log('+++'); // questo verrà eseguito
} else {
console.log('---');
}
Ma, ad esempio, il numero 0 si converte
in false. E la nostra condizione di conseguenza
restituirà 'non corretto':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // questo verrà eseguito
}
In pratica, un tale confronto può essere esplicitamente riscritto nella forma seguente:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Ricordate e scrivete quali valori,
quando convertiti al tipo logico, restituiscono
false.
Senza eseguire il codice, determinate cosa verrà stampato in console:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Senza eseguire il codice, determinate cosa verrà stampato in console:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Senza eseguire il codice, determinate cosa verrà stampato in console:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Senza eseguire il codice, determinate cosa verrà stampato in console:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Senza eseguire il codice, determinate cosa verrà stampato in console:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Senza eseguire il codice, determinate cosa verrà stampato in console:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Senza eseguire il codice, determinate cosa verrà stampato in console:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}