Operatori ternari
L’operatore ternario è l’unico operatore condizionale di JavaScript ed è una forma compatta dell’istruzione if...else.
Viene spesso utilizzato per assegnare valori o restituire risultati diversi in base a una condizione, mantenendo il codice più conciso.
Sintassi
condizione ? valoreSeVero : valoreSeFalso;- condizione → un’espressione che viene valutata come
trueofalse - valoreSeVero → restituito se la condizione è vera
- valoreSeFalso → restituito se la condizione è falsa
Esempio base
let eta = 18;
let messaggio = eta >= 18 ? "Maggiorenne" : "Minorenne";
console.log(messaggio); // "Maggiorenne"È equivalente a:
let messaggio;
if (eta >= 18) {
messaggio = "Maggiorenne";
} else {
messaggio = "Minorenne";
}Uso per assegnazioni
let saldo = 50;
let stato = saldo > 0 ? "Credito disponibile" : "Saldo insufficiente";Uso come valore di ritorno
function controllaNumero(n) {
return n % 2 === 0 ? "Pari" : "Dispari";
}Ternari concatenati (annidati)
È possibile usare più operatori ternari insieme, ma è importante mantenere il codice leggibile.
let voto = 8;
let giudizio = voto >= 9 ? "Ottimo" : voto >= 7 ? "Buono" : voto >= 6 ? "Sufficiente" : "Insufficiente";Uso nelle espressioni
let sconto = isVip ? prezzo * 0.8 : prezzo * 0.95;Ternario con valori booleani
let attivo = true;
let stato = attivo ? true : false;Questo esempio è ridondante e può essere semplificato:
let stato = attivo;Ternario con espressioni complesse
let risultato = a > b && c > d ? "Condizione vera" : "Condizione falsa";Ternario come alternativa compatta a if...else
let accesso = loggedIn ? "Accesso consentito" : "Accesso negato";Buone pratiche
- Usare il ternario solo per condizioni semplici
- Evitare annidamenti troppo profondi
- Preferire
if...elsese la logica è complessa - Usarlo per assegnazioni, ritorni rapidi e UI logic
Errori comuni
Dimenticare i due punti :
// ❌ Errore
condizione ? valore1 valore2Usare istruzioni invece di espressioni
// ❌ Non valido
condizione ? console.log("Sì") : if (x) {}Conclusione
L’operatore ternario è uno strumento potente per scrivere codice più compatto e leggibile, se usato con criterio. È ideale per condizioni semplici, assegnazioni rapide e logica inline, ma non deve sostituire completamente le strutture di controllo tradizionali.
Aggiornato il