JavaScript ha il concetto di valori "verità" e "falsi".
I seguenti valori sono falsey
:
-
false
-
null
-
undefined
-
0
-
NaN
-
''
(stringa vuota)
Tutti gli altri valori sono truthy
.
Quando una variabile viene lanciata su un booleano, la sua "verità" viene controllata. Quando viene valutata in un'istruzione if
, o in uno qualsiasi di ?:
, ||
e &&
, la variabile viene automaticamente castata su un valore booleano ai fini del controllo (la variabile stessa non viene modificata).
Ciò significa che:
if (event) {
viene essenzialmente trattato come:
if (Boolean(event)) {
Questo tipo di controllo viene spesso utilizzato per verificare che esista una variabile prima di utilizzare i metodi su di essa. In questo caso impedisce un errore di riferimento null su variabili non definite.
Nota: la Verità è non lo stesso che controllare una variabile rispetto a true
o false
.
cioè.
if (foo) {
non è uguale a
if (foo == true) {
Un semplice esempio di dove questo fallisce è quando si confronta con un oggetto:
var foo = {};
if (foo) {
console.log('this works!');
}
if (foo == true) {
console.log('this doesn\'t work!');
}