Ternarni operater JavaScript kot bližnjica do izjav If / Else

Pogojni ternarni operater v JavaScript dodeli vrednost spremenljivki na podlagi nekega pogoja in je edini operater JavaScript, ki sprejme tri operande.

Ternarni operater je nadomestilo za če izjavo, v kateri sta oba če in drugače stavki enakemu polju dodeljujejo različne vrednosti, tako:

če (pogoj)
rezultat = 'nekaj';
drugače
rezultat = 'somethingelse';

Ternarni operater to skrajša, če / else izjavo v eno samo izjavo:

rezultat = (stanje)? 'nekaj': 'somethingelse'; 

Če stanje je res, ternarni operater vrne vrednost prvega izraza; v nasprotnem primeru vrne vrednost drugega izraza. Razmislimo o njegovih delih:

  • Najprej ustvarite spremenljivko, ki ji želite dodeliti vrednost, v tem primeru, rezultat. Spremenljivka rezultat bo imelo drugačno vrednost, odvisno od stanja.
  • Upoštevajte, da je na desni strani (tj. Sam operater) oznaka stanje je prvi.
  • The stanje vedno sledi vprašalnik (?), kar lahko v bistvu beremo kot "je bilo to res?"
  • Zadnja možna rezultata sta ločena s dvopičjem (:).

Ta uporaba ternarni operater

instagram viewer
je na voljo samo, če je original če Izjava sledi obliki, ki je prikazana zgoraj - vendar je to precej pogost scenarij, uporaba ternarnega operaterja pa je lahko veliko bolj učinkovita.

Primer ternarnega operaterja

Poglejmo resničen primer.

Morda morate določiti, kateri otroci so prave starosti, da obiskujejo vrtec. Morda imate pogojno izjavo, kot je ta:

var starost = 7;
var vrtec_elegible;
če (starost> 5) {
vrtec_eligible = "Dovolj star";
}
drugače {
vrtec_eligible = "Premlada";
}

Z uporabo ternarnega operaterja lahko izraz skrajšate na:

var vrtec_eligible = (starost <5)? "Premlada": "Dovolj stara";

Ta primer bi seveda vrnil "dovolj staro."

Večkratne ocene

Vključite lahko tudi več ocen:

var starost = 7, var socially_ready = res;
var vrtec_eligible = (starost <5)? "Premlada": socialno_ready
"Dovolj star, a še ni pripravljen" "Dovolj star in socialno zrel"
console.log (vrtec_primerno); // dnevniki "dovolj stari in socialno zreli"

Več operacij

Ternarni operater omogoča tudi vključitev več operacij za vsak izraz, ločenih z vejico:

var starost = 7, socialno_ready = res;
starost> 5? (
opozorilo ("Dovolj si star."),
location.assign ("nadaljevanje.html")
): (
socially_ready = napačno,
opozorilo ("Oprostite, a še niste pripravljeni.")
);

Posledice končnega operaterja

Ternarni operaterji se izogibajo dobesednim besedam Koda, zato se po eni strani zdijo zaželene. Po drugi strani pa lahko ogrozijo berljivost - očitno je "ČE ELSE" lažje razumeti kot skrivnost "?".

Ko uporabljate ternarnega operaterja - ali katerokoli okrajšavo - razmislite, kdo bo bral vašo kodo. Če bodo manj izkušeni razvijalci morda morali razumeti vašo programsko logiko, se je mogoče izogniti uporabi trojnega operaterja. To še posebej velja, če so vaše stanje in ocene dovolj zapleteni, da bi morali gnezdo ali verižno povezati svojega trinajsterja. Pravzaprav lahko te vrste ugnezdenih operaterjev vplivajo ne samo na berljivost, temveč tudi na odpravljanje napak.

Kot pri vsaki programski odločitvi, pred uporabo ternarnega operaterja, upoštevajte kontekst in uporabnost.