Den ternære operatøren av JavaScript som en snarvei for If / Else-uttalelser

Den betingede ternære operatøren i Javascript tildeler en verdi til en variabel basert på en eller annen tilstand og er den eneste JavaScript-operatøren som tar tre operander.

Den ternære operatøren er en erstatning for en hvis uttalelse der begge hvis og ellers klausuler tildeler forskjellige verdier til det samme feltet, slik:

hvis (tilstand)
resultat = 'noe';
ellers
resultat = 'noeelse';

Den ternære operatøren forkorter denne om / ellers uttalelsen til en enkelt uttalelse:

resultat = (betingelse)? 'noe': 'noeelse'; 

Hvis betingelse er sant, returnerer den ternære operatøren verdien til det første uttrykket; Ellers returnerer den verdien av det andre uttrykket. La oss vurdere delene:

  • Lag først variabelen du vil tilordne en verdi til i dette tilfellet, resultat. Variabelen resultat vil ha en annen verdi avhengig av tilstanden.
  • Legg merke til at på høyre side (dvs. operatøren selv), betingelse er først.
  • De betingelse blir alltid fulgt av et spørsmålstegn (?), som i utgangspunktet kan leses som "var det sant?"
  • De to mulige resultatene kommer sist, atskilt med en kolon (:).
instagram viewer

Denne bruken av ternær operatør er bare tilgjengelig når originalen hvis setningen følger formatet vist over - men dette er et ganske vanlig scenario, og det kan være langt mer effektivt å bruke den ternære operatøren.

Ternary operator-eksempel

La oss se på et reelt eksempel.

Kanskje du trenger å bestemme hvilke barn som er i riktig alder for å gå i barnehage. Du har kanskje en betinget uttalelse som denne:

var alder = 7;
var barnehage_berettiget;
if (alder> 5) {
barnehage_eligible = "Gammel nok";
}
ellers {
barnehage_eligible = "For ung";
}

Ved hjelp av den ternære operatøren kan du forkorte uttrykket til:

var barnehage_berettiget = (alder <5)? "For ung": "Gammel nok";

Dette eksemplet ville selvfølgelig returnere "Gammelt nok."

Flere evalueringer

Du kan også inkludere flere evalueringer:

var alder = 7, var sosial_klar = sann;
var barnehage_berettiget = (alder <5)? "For ung": sosialt
"Gammel nok, men ennå ikke klar" "Gammel og sosialt moden nok"
console.log (barnehage-kvalifisert); // logger "Gamle og sosialt modne nok"

Flere operasjoner

Den ternære operatøren tillater også inkludering av flere operasjoner for hvert uttrykk, atskilt med komma:

var alder = 7, sosialt_ allerede = sant;
alder> 5? (
alert ("Du er gammel nok."),
location.assign ( "continue.html")
): (
socially_ready = falsk,
alarm ("Beklager, men du er ennå ikke klar.")
);

Ternary operator implikasjoner

Ternære operatører unngår ellers ordbruk kode, så på den ene siden virker de ønskelige. På den annen side kan de kompromittere lesbarheten - åpenbart er "IF ELSE" lettere forstått enn et kryptisk "?".

Når du bruker en ternary operator - eller en forkortelse - bør du vurdere hvem som skal lese koden din. Hvis mindre erfarne utviklere kan trenge å forstå programlogikken din, bør du kanskje unngå bruk av den ternære operatøren. Dette gjelder spesielt hvis din tilstand og evalueringer er sammensatte nok til at du vil trenge å hekke eller kjede din ternære operatør. Faktisk kan disse typer nestede operatører påvirke ikke bare lesbarhet men feilsøking.

Som med alle programmeringsbeslutninger, må du huske å vurdere kontekst og brukervennlighet før du bruker en ternary operatør.