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 (:).
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.