Valori booleani in Javascript

Concetti Chiave
  • I valori booleani in Javascript rappresentano due stati: vero (true) e falso (false).
  • I valori booleani sono il risultato di confronti tra valori e sono comunemente usati nelle strutture di controllo del flusso del programma.
  • I valori booleani possono essere utilizzati in espressioni logiche e condizionali per determinare il flusso di esecuzione del codice.
  • I valori booleani hanno metodi come toString() per convertirli in stringhe, ma non hanno altri metodi utili.
  • Gli operatori booleani principali in Javascript sono && (AND), || (OR) e ! (NOT).
  • I valori falsy in Javascript includono undefined, null, 0, -0, NaN, e la stringa vuota "", mentre tutti gli altri valori sono truthy.

Valori Booleani

Un valore boolean rappresenta vero o falso, acceso o spento, sì o no. Ci sono solo due possibili valori di questo tipo. Le parole riservate true e false corrispondono a questi due valori.

I valori boolean sono generalmente il risultato di confronti che si fanno nei programmi JavaScript. Per esempio:

a === 4

Questo codice testa per vedere se il valore della variabile a è uguale al numero 4. Se lo è, il risultato di questo confronto è il valore boolean true. Se a non è uguale a 4, il risultato del confronto è false.

I valori boolean sono comunemente usati nelle strutture di controllo JavaScript. Per esempio, l'istruzione if/else in JavaScript esegue un'azione se un valore boolean è true e un'altra azione se il valore è false. Solitamente combiniamo un confronto che crea un valore boolean direttamente con un'istruzione che lo usa. Il risultato appare così:

if (a === 4) {
    b = b + 1;
} else {
    a = a + 1;
}

Questo codice controlla se a è uguale a 4. Se è così, aggiunge 1 a b; altrimenti, aggiunge 1 ad a.

Come si discuterà nelle prossime lezioni, qualsiasi valore JavaScript può essere convertito in un valore boolean. I seguenti valori si convertono in, e quindi funzionano come, false:

undefined
null
0
-0
NaN
""  // la stringa vuota

Tutti gli altri valori, inclusi tutti gli oggetti (e array) si convertono in, e funzionano come, true. false, e i sei valori che si convertono in esso, sono talvolta chiamati valori falsy, e tutti gli altri valori sono chiamati truthy. Ogni volta che JavaScript si aspetta un valore boolean, un valore falsy funziona come false e un valore truthy funziona come true.

Come esempio, si supponga che la variabile o contenga o un oggetto o il valore null. È possibile testare esplicitamente per vedere se o è non-null con un'istruzione if così:

if (o !== null) ...

L'operatore not-equal !== confronta o con null e valuta a true o false. Ma si può omettere il confronto e invece fare affidamento sul fatto che null è falsy e gli oggetti sono truthy:

if (o) ...

Nel primo caso, il corpo dell'if sarà eseguito solo se o non è null. Il secondo caso è meno rigoroso: eseguirà il corpo dell'if solo se o non è false o qualsiasi valore falsy (come null o undefined). Quale istruzione if è appropriata per il programma dipende davvero da quali valori ci si aspetta vengano assegnati a o. Se si ha bisogno di distinguere null da 0 e "", allora si dovrebbe usare un confronto esplicito.

I valori boolean hanno un metodo toString() che si può usare per convertirli nelle stringhe "true" o "false", ma non hanno altri metodi utili. Nonostante l'API banale, ci sono tre importanti operatori boolean.

L'operatore && esegue l'operazione Boolean AND. Valuta a un valore truthy se e solo se entrambi i suoi operandi sono truthy; valuta a un valore falsy altrimenti. L'operatore || è l'operazione Boolean OR: valuta a un valore truthy se uno (o entrambi) dei suoi operandi è truthy e valuta a un valore falsy se entrambi gli operandi sono falsy. Infine, l'operatore unario ! esegue l'operazione Boolean NOT: valuta a true se il suo operando è falsy e valuta a false se il suo operando è truthy. Per esempio:

if ((x === 0 && y === 0) || !(z === 0)) {
    // x e y sono entrambi zero o z è non-zero
}

Si studieranno in dettaglio gli operatori booleani nelle prossime lezioni. Per ora, è sufficiente sapere che i valori booleani sono un tipo di dato fondamentale in JavaScript e che sono comunemente usati per controllare il flusso del programma.