Gli operatori logici in JavaScript sono quel tipo di operatore che restituisce un valore booleano in seguito alla comparazione di altrettante espressioni booleane. Non sono comunque limitati all'uso esclusivo di suddette primitive.
JavaScript supporta tre operatori:
- AND (
&&
) - OR (
||
) - NOT (
!
)
Di seguito vediamo nel dettaglio come si usano.
Operatore Logico AND
L'operatore logico AND, o congiunzione logica, restituisce true
se entrambe le condizioni da valutare risultano vere, in tutti gli altri casi restituisce false
. Le potenziali combinazioni e i relativi risultati sono i seguenti:
Espressione 1 | Espressione 2 | Risultato |
---|---|---|
falso | falso | falso |
vero | falso | falso |
falso | vero | falso |
vero | vero | vero |
Come diceva il mio professore di matematica quando ci spiegava l'algebra di Bool. L'operatore logico AND implica che entrambe le cose debbano essere fatte.
Mangi la finestra e ti butti dalla finestra
Nessuna esclude l'altra, devi prima mangiare la minestra e una volta fatto ti puoi buttare dalla finestra. Uno e l'altro.
In JavaScript per scrivere la congiunzione logica si fa così:
1if (utenteAutenticato() && utenteAmministratore()) {
2 console.log("Ciao Amministratore Manuel");
3} else {
4 console.log("Ciao Utente");
5}
Per quanto il costrutto if/else
verrà approfondito nel prossimo articolo, in questo caso ti basti sapere che le due funzioni utenteAutenticato()
e utenteAmministratore()
restituiscono un valore booleano. true
se l'utente ha fatto il login e se è amministratore, altrimenti false
. Se tutte e due le condizioni sono vere mostrerò in console un messaggio piuttosto che un altro.
Operatore Logico OR
A differenza di AND, OR restituisce true
se una o l'altra espressione risulta vera e solo nel caso tutte e due siano false restituirà false
. Le potenziali combinazioni e possibili risultati quindi saranno i seguenti:
Espressione 1 | Espressione 2 | Risultato |
---|---|---|
falso | falso | falso |
vero | falso | vero |
falso | vero | vero |
vero | vero | vero |
Per citare sempre il mio professore, in questo caso la frase era:
O mangi la minestra o ti butti dalla finestra.
Qui le due scelte possono essere esclusive e quindi solo una delle due può essere portata a termine, mentre l'altra no. Sono libero quindi di mangiare la mia minestra e di non buttarmi dalla finestra o viceversa o di fare entrambe, a me la scelta.
In JavaScript per scrivere la disgiunzione logica si fa così:
1let x = 10;
2if (x < 10 || x > 10) {
3 console.log("x NON è 10");
4}
In questo caso, anche se il codice che ho scritto non è proprio il massimo dal punto di vista logico. Chiarisce l'uso di OR. Alla variabile x
assegniamo 10 e facciamo una comparazione. Per mostrare il messaggio in console x
può essere maggiore o minore di 10. Semplice no?
Operatore Logico NOT
Il NOT è il più semplice, perché semplicemente il suo risultato è il contrario di ciò che risulterà dall'espressione.
Espressione 1 | Risultato |
---|---|
falso | vero |
vero | falso |
In JavaScript per usare il NOT bisogna anteporre un punto esclamativo davanti all'espressione, in questo modo:
1if (!utenteAutenticato()) {
2 console.log("Utente NON Autenticato");
3}
Ricordate la funzione di prima utenteAutenticato()
, ci restituiva true
se l'utente aveva fatto il login, false
altrimenti. Con il costrutto if
, noi possiamo accedere al primo blocco di istruzioni solo e soltanto se la condizione tra le parentesi tonde risulta vera. Se l'utente non è autenticato, la funzione ci restituisce false
, ma con un bel punto esclamativo davanti ribaltiamo la situazione, questo non vuol dire che l'utente sarà magicamente loggato, ma che eseguiremo del codice specifico per gli utenti non loggati.
Tra i programmatori esiste anche una battuta con il NOT, questa:
!false è divertente perché è vero.
Spazio per risate e applausi.
Valutazione cortocircuito
Abbiamo già ampiamente discusso delle variabili e delle costanti, ma ora che conosciamo anche gli operatori logici sappi che esistono modi per poter assegnare valori alle nostre variabili in base ad una valutazione chiamata cortocircuito.
Le valutazioni sono due:
(espressione) || altro
: Nel caso di una variabile, se l'espressione risulta falsa, le verrà assegnato il valore a destra dell'OR, altrimenti il risultato dell'espressione.(espressione) && fai qualcosa
: Sempre nel caso di una variabile, se l'espressione risulta falsa, non verrà fatto niente, altrimenti verrà eseguito del codice (es. renderizza parte di un componente).
1const clienti = listaDeiClienti() || [];
Nell'esempio, se listaDeiClienti()
restituirà qualcosa che non verrà valutato come falso (array vuoto, false, null, undefined, ecc.), allora verrà assegnato alla costante clienti
il risultato della funzione, altrimenti verrà assegnato un array vuoto. Così facendo, il programma potrà mostrare o la lista dei clienti o un messaggio con scritto "Nessun Cliente da Mostrare".
Questo è quanto, grazie come sempre per aver letto.
Stay Safe
Caricamento...
Diventiamo amici di penna? ✒️
Iscriviti alla newsletter per ricevere una mail ogni paio di settimane con le ultime novità, gli ultimi approfondimenti e gli ultimi corsi gratuiti puubblicati. Ogni tanto potrei scrivere qualcosa di commerciale, ma solo se mi autorizzi, altrimenti non ti disturberò oltre.
Se non ti piace la newsletter ti ricordo la community su Discord, dove puoi chiedere aiuto, fare domande e condividere le tue esperienze (ma soprattutto scambiare due meme con me). Ti aspetto!