Nozioni di base su JavaScript: operatori ternari

Mar 23 2023
Cos'è un operatore ternario? L'operatore ternario viene utilizzato per controllare le condizioni nel codice invece di utilizzare un'istruzione if…else. È anche chiamato operatore condizionale e rende il codice notevolmente più breve e più facile da leggere (la maggior parte delle volte).
Foto di Tsvetoslav Hristov su Unsplash

Cos'è un operatore ternario?

L'operatore ternario viene utilizzato per controllare le condizioni nel codice invece di utilizzare un'istruzione if…else. È anche chiamato operatore condizionale e rende il codice notevolmente più breve e più facile da leggere (la maggior parte delle volte).

Sintassi

Diamo un'occhiata alla sintassi di un operatore ternario:

condition ? trueExpression : falseExpression

condition — la condizione che stai valutando. Ad esempio: ha un'età > 5 anni.

trueExpression: questo è ciò che dovrebbe accadere se lo conditionètrue.

falseExpression: questo è ciò che dovrebbe accadere se lo conditionèfalse.

Esempio

Di seguito è riportato un esempio che utilizza un'istruzione if…else che controlla se l'auto deve muoversi in base al colore del semaforo.

let color = ‘red’; // color of the traffic light
let carMovement;

if (color === 'red') {
  carMovement = 'stop';
} else {
  carMovement = 'go';
}

console.log(carMovement); //stop

let color = 'red'; // color of the traffic light
let carMovement = color === red ? 'stop' : 'go';

console.log(carMovement); //stop

Puoi anche nidificare o concatenare un operatore ternario come espressione all'interno di un altro operatore ternario. Di seguito è riportato un esempio per verificare se un numero è positivo, negativo o zero:

let num = 2;
let result = num >= 0 ? num === 0 ? 'zero' : 'positive' : 'negative';

console.log(result); //positive

let num = 2;
let result = (num >= 0) ? (num === 0 ? "zero" : "positive") : "negative";

console.log(result); //positive

Quando dovresti usare gli operatori ternari?

Come nell'esempio sopra evidenziato, gli operatori ternari possono accorciare il codice, ma quando si usano operatori ternari nidificati complessi, tendono a rendere il codice meno leggibile e più confuso.

Una regola pratica sarebbe pensare se qualcun altro nei prossimi 2 anni sarà in grado di leggere e comprendere il tuo codice con facilità. Se la risposta è no, usa invece un'istruzione if...else.

Suggerimento: se si utilizza ESlint, vieta del tutto l'uso di operatori ternari nidificati!

Conclusione

Gli operatori ternari brillano solo quando rendono il codice più facile da leggere, comprendere e mantenere. Non si tratta solo di rendere il codice più breve, quindi usali in modo efficace.