L'operatore JavaScript Ternary come scorciatoia per le dichiarazioni If / Else

L'operatore ternario condizionale in JavaScript assegna un valore a una variabile in base a una condizione ed è l'unico operatore JavaScript che accetta tre operandi.

L'operatore ternario è un sostituto di un Se dichiarazione in cui sia il Se e altro le clausole assegnano valori diversi allo stesso campo, in questo modo:

if (condizione)
risultato = 'qualcosa';
altro
risultato = 'qualcosa';

L'operatore ternario accorcia questa istruzione if / else in una singola istruzione:

risultato = (condizione)? "qualcosa": "qualcosa"; 

Se condizione è vero, l'operatore ternario restituisce il valore della prima espressione; in caso contrario, restituisce il valore della seconda espressione. Consideriamo le sue parti:

  • Innanzitutto, crea la variabile a cui desideri assegnare un valore, in questo caso, risultato. La variabile risultato avrà un valore diverso a seconda della condizione.
  • Si noti che sul lato destro (ovvero l'operatore stesso), il condizione è il primo.
  • Il condizione è sempre seguito da un punto interrogativo (?), che in pratica può essere letto come "era vero?"
  • instagram viewer
  • I due possibili risultati arrivano per ultimi, separati da due punti (:).

Questo uso di operatore ternario è disponibile solo quando l'originale Se L'istruzione segue il formato mostrato sopra, ma questo è uno scenario abbastanza comune e l'uso dell'operatore ternario può essere molto più efficiente.

Esempio di operatore ternario

Diamo un'occhiata a un vero esempio.

Forse devi determinare quali bambini hanno l'età giusta per frequentare la scuola materna. Potresti avere un'istruzione condizionale come questa:

età var = 7;
var kindergarten_eligible;
if (età> 5) {
kindergarten_eligible = "Abbastanza vecchio";
}
altro {
kindergarten_eligible = "Troppo giovane";
}

Utilizzando l'operatore ternario, è possibile abbreviare l'espressione per:

var kindergarten_eligible = (età <5)? "Troppo giovane": "Abbastanza vecchio";

Questo esempio, ovviamente, restituirebbe "Abbastanza vecchio".

Valutazioni multiple

Puoi includere anche più valutazioni:

var age = 7, var socially_ready = true;
var kindergarten_eligible = (età <5)? "Troppo giovane": socially_ready
"Abbastanza vecchio ma non ancora pronto" "Abbastanza vecchio e socialmente maturo"
console.log (kindergarten_eligible); // registra "Abbastanza vecchio e socialmente maturo"

Operazioni multiple

L'operatore ternario consente anche l'inclusione di più operazioni per ogni espressione, separate da una virgola:

var age = 7, socially_ready = true;
età> 5 anni? (
alert ("Sei abbastanza grande."),
location.assign ( "continue.html")
): (
socially_ready = false,
alert ("Siamo spiacenti, ma non sei ancora pronto.")
);

Implicazioni dell'operatore ternario

Gli operatori ternari evitano altrimenti verboso codice, quindi da un lato, sembrano desiderabili. D'altra parte, possono compromettere la leggibilità - ovviamente, "SE ELSE" è più facilmente comprensibile di un criptico "?".

Quando usi un operatore ternario - o qualsiasi abbreviazione - considera chi leggerà il tuo codice. Se gli sviluppatori meno esperti potrebbero aver bisogno di capire la logica del tuo programma, forse dovrebbe essere evitato l'uso dell'operatore ternario. Ciò è particolarmente vero se la tua condizione e le valutazioni sono abbastanza complesse da dover nidificare o incatenare il tuo operatore ternario. In effetti, questo tipo di operatori nidificati può influire non solo sulla leggibilità ma sul debug.

Come per qualsiasi decisione di programmazione, assicurarsi di considerare il contesto e l'usabilità prima di utilizzare un operatore ternario.

instagram story viewer