Ternárny operátor JavaScript ako skratka pre vyhlásenia if / else

click fraud protection

Podmienený ternárny operátor v JavaScript priradí hodnotu premennej na základe určitých podmienok a je jediným operátorom JavaScriptu, ktorý berie tri operandy.

Ternárny operátor je náhradou za ak vyhlásenie, v ktorom obidve ak a inak klauzuly priraďujú rovnakému poľu rôzne hodnoty, napríklad:

ak (podmienka)
result = 'niečo';
inak
result = 'someelse';

Ternárny operátor skráti tento príkaz if / else do jedného príkazu:

výsledok = (stav)? „niečo“: „niečo“; 

ak podmienka je pravda, ternárny operátor vráti hodnotu prvého výrazu; v opačnom prípade vráti hodnotu druhého výrazu. Zoberme si jeho časti:

  • Najskôr vytvorte premennú, ktorej chcete priradiť hodnotu, v tomto prípade následok. Premenná následok bude mať inú hodnotu v závislosti od stavu.
  • Všimnite si, že na pravej strane (t. J. Samotný operátor), podmienka je prvý.
  • podmienka za ním vždy nasleduje otáznik (?), ktorú možno v zásade chápať ako „bolo to pravda?“
  • Posledné dva možné výsledky sú oddelené dvojbodkou (:).

Toto použitie ternárny operátor je k dispozícii iba vtedy, keď je originál

instagram viewer
ak vyhlásenie má formát uvedený vyššie - je to však celkom bežný scenár a použitie ternárneho operátora môže byť oveľa efektívnejšie.

Príklad ternárneho operátora

Pozrime sa na skutočný príklad.

Možno budete musieť určiť, ktoré deti sú najvhodnejšie na návštevu materskej školy. Môžete mať podmienečné vyhlásenie, ako je toto:

var vek = 7;
var kindergarten_eligible;
if (vek> 5) {
kindergarten_eligible = "dosť starý";
}
else {
kindergarten_eligible = "Príliš mladý";
}

Pomocou ternárneho operátora môžete výraz skrátiť na:

var kindergarten_eligible = (vek <5)? „Príliš mladý“: „dosť starý“;

Tento príklad by samozrejme vrátil výraz „dosť starý“.

Viaceré hodnotenia

Môžete zahrnúť aj niekoľko hodnotení:

var vek = 7, var socially_ready = true;
var kindergarten_eligible = (vek <5)? „Príliš mladý“: socially_ready
„Je dosť starý, ale ešte nie je pripravený“ „Je dosť starý a spoločensky vyzretý“
console.log (kindergarten_eligible); // protokoly „dostatočne starí a spoločensky vyspelí“

Viaceré operácie

Ternárny operátor tiež umožňuje zahrnúť viac operácií pre každý výraz oddelený čiarkou:

var vek = 7, socially_ready = true;
vek> 5? (
upozornenie („Ste dosť starí.“),
location.assign ( "continue.html")
): (
socially_ready = false,
upozornenie („Ľutujeme, ale ešte nie ste pripravení.“)
);

Dôsledky ternárneho operátora

Ternárni operátori sa vyhýbajú inému podrobnému slovu kód, na jednej strane sa javia ako žiaduce. Na druhej strane môžu ohroziť čitateľnosť - „IF ELSE“ je samozrejme ľahšie pochopiteľné ako záhadné „?“.

Pri používaní ternárneho operátora - alebo akejkoľvek skratky - zvážte, kto bude čítať váš kód. Ak bude možno potrebovať porozumieť programovej logike menej skúseným vývojárom, možno by sa malo vyhnúť použitiu ternárneho operátora. Platí to najmä v prípade, ak sú vaše podmienky a vyhodnotenia dostatočne komplexné, aby ste museli hniezdiť alebo reťaziť ternárneho operátora. V skutočnosti tieto druhy vnorených operátorov môžu ovplyvniť nielen čitateľnosť, ale aj ladenie.

Ako pri každom rozhodnutí o programovaní, nezabudnite pred použitím ternárneho operátora zvážiť kontext a použiteľnosť.

instagram story viewer