Full Stack

Operatori Logici in JavaScript

Autore

Manuel Ricci

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 1Espressione 2Risultato
falsofalsofalso
verofalsofalso
falsoverofalso
veroverovero

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 1Espressione 2Risultato
falsofalsofalso
verofalsovero
falsoverovero
veroverovero

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 1Risultato
falsovero
verofalso

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!

Ho in previsione di mandarti una newsletter ogni due settimane e una commerciale quando capita.