If/Else in JavaScript
Dev

If/Else in JavaScript

L'istruzione if/else a mio modesto parere è forse una delle istruzioni più potenti che un programmatore ha a disposizione. Permette di scegliere quale porzione di codice eseguire e quale no.

Per essere più specifici if esegue un'istruzione se una specifica condizione risulta veritiera. Qualora invece risultasse falsa, allora un'altra istruzione potrebbe essere eseguita.

Vediamo un piccolo esempio.

1function maggioreDi(a, b) { 2 let risultato; 3 if (a > b) { 4 risultato = "A è maggiore di B"; 5 } else { 6 risultato = "A è minore o uguale a B"; 7 } 8 return risultato; 9}

Nell'esempio qui sopra la condizione a > b restituisce un valore booleano. Supponendo di passare di chiamare la funzione in questo modo: maggioreDi(5,2), il confronto risulterà vero (5 è maggiore di 2). Alla variabile risultato verrà assegnata la stringa "A è maggiore di B" e tale valore verrà poi restituito alla fine della funzione.

Qualora invece la funzione fosse stata chiamata così maggioreDi(2,5), in questo caso la condizione tra le parentesi tonde non sarebbe risultata vera, ma falsa e quindi sarebbe stato eseguito il blocco di codice presente tra le parentesi graffe di else.

Generalizzando la sintassi

1if (condizione) { 2 istruzione1 3} else { 4 istruzione2 5}

Dove:

  • condizione è l'espressione che deve essere valutata come vera o falsa.
  • istruzione1 istruzione che viene eseguita se la condizione risulta vera. Può essere qualunque cosa un altro if o istruzioni multiple.
  • istruzione2 istruzione che viene eseguita se la condizione risulta falsa. Come per l'istruzione1 può essere qualsiasi cosa (a patto, ovviamente, che abbia senso).

Testare più casistiche

Se le condizioni da testare sono multiple possiamo avvalerci ancora di if/else, ma usando else if.

1if (condizione1) { 2 istruzione1 3} else if (condizione2) { 4 istruzione2 5} else if (condizione3) { 6 istruzione3 7} else { 8 istruzione_n 9}

Con questa struttura di controllo se la condizione1 risulta falsa, si passa alla condizione2, poi alla condizione3 e se nessuna delle condizioni dovesse risultare vera verrà eseguito il blocco di istruzioni di else.

Best Practice

Alcune best practice da tenere a mente quando si usa if/else sono sicuramente:

Non scrivere else se non ci sono istruzioni da eseguire, basta semplicemente ometterlo.

1// No 2if (utenteAutenticato()) { 3 console.log("Benvenuto Manuel"); 4} else { 5 // Non faccio niente 6} 7 8// Sì 9if (utenteAutenticato()) { 10 console.log("Benvenuto Manuel"); 11}

Non lasciare un blocco if vuoto se devi eseguire qualcosa solo nel blocco else.

1// No 2if (utenteAutenticato()) { 3 // Non faccio niente 4} else { 5 console.log("Ciao Utente"); 6} 7 8// Sì 9if (!utenteAutenticato()) { 10 console.log("Ciao Utente"); 11}

N.B. Da notare l'uso dell'operatore logico NOT

Concatenare più condizioni con gli operatori logici

1// No 2if (utenteAutenticato()) { 3 if (utenteAmministratore()) { 4 console.log("Ciao Amministratore Manuel"); 5 } 6} else { 7 console.log("Ciao Utente"); 8} 9// Sì 10if (utenteAutenticato() && utenteAmministratore()) { 11 console.log("Ciao Amministratore Manuel"); 12} else { 13 console.log("Ciao Utente"); 14}

Crediti Foto: Lachlan Donald

;