Ternární operátor JavaScript jako zkratka pro příkazy If / Else

click fraud protection

Podmíněný ternární operátor v JavaScript přiřazuje hodnotu proměnné na základě některých podmínek a je jediným operátorem JavaScriptu, který bere tři operandy.

Ternární operátor je náhradou za -li prohlášení, ve kterém oba -li a jiný klauzule přiřazují různé hodnoty stejnému poli, například:

pokud (podmínka)
result = 'něco';
jiný
result = 'someelse';

Ternární operátor zkrátí tento příkaz if / else do jednoho příkazu:

výsledek = (podmínka)? 'něco': 'něcoelse'; 

Li stav je pravda, ternární operátor vrátí hodnotu prvního výrazu; jinak vrátí hodnotu druhého výrazu. Podívejme se na jeho části:

  • Nejprve vytvořte proměnnou, které chcete přiřadit hodnotu, v tomto případě výsledek. Proměnná výsledek bude mít jinou hodnotu v závislosti na stavu.
  • Všimněte si, že na pravé straně (tj. Samotný operátor), stav je první.
  • stav je vždy následován otazníkem (?), což lze v podstatě chápat jako „bylo to pravda?“
  • Poslední dva možné výsledky jsou oddělené dvojtečkou (:).

Toto použití ternární operátor je k dispozici, pouze pokud je originál

instagram viewer
-li příkaz odpovídá formátu uvedenému výše - ale je to docela běžný scénář a použití ternárního operátora může být mnohem efektivnější.

Příklad ternárního operátora

Podívejme se na skutečný příklad.

Možná budete muset určit, které děti jsou v pravém věku, aby navštěvovaly mateřskou školu. Můžete mít podmíněné prohlášení, jako je toto:

var věk = 7;
var kindergarten_eligible;
if (age> 5) {
kindergarten_eligible = "dost starý";
}
jinde {
kindergarten_eligible = "Příliš mladý";
}

Pomocí ternárního operátora můžete výraz zkrátit na:

var kindergarten_eligible = (věk <5)? „Příliš mladý“: „Dost starý“;

Tento příklad by samozřejmě vrátil „dost starý“.

Více hodnocení

Můžete také zahrnout více hodnocení:

var age = 7, var socially_ready = true;
var kindergarten_eligible = (věk <5)? "Příliš mladý": socially_ready
„Dost starý, ale ještě nepřipravený“ „Dost starý a společensky zralý“
console.log (kindergarten_eligible); // protokoly „dostatečně staré a společensky zralé“

Více operací

Ternární operátor také umožňuje zahrnutí více operací pro každý výraz oddělených čárkou:

var age = 7, socially_ready = true;
věk> 5? (
upozornění („Jsi dost starý.“),
location.assign ("pokračovat.html")
): (
socially_ready = false,
upozornění („Litujeme, ale ještě nejste připraveni.“)
);

Implikace ternárního operátora

Ternární operátoři se vyhýbají jinak podrobně kód, na jedné straně se jeví jako žádoucí. Na druhé straně mohou ohrozit čitelnost - očividně „IF ELSE“ je snadněji pochopitelné než záhadné „?“.

Při použití ternárního operátora - nebo jakékoli zkratky - zvažte, kdo bude číst váš kód. Pokud bude méně zkušený vývojář potřebovat pochopit vaši logiku programu, je třeba se vyhnout použití ternárního operátora. To platí zejména v případě, že váš stav a vyhodnocení jsou dostatečně komplexní, že byste museli hnízdo nebo řetězy svého ternárního operátora. Ve skutečnosti mohou tyto druhy vnořených operátorů ovlivnit nejen čitelnost, ale i ladění.

Jako u každého programovacího rozhodnutí, nezapomeňte zvážit kontext a použitelnost před použitím ternárního operátora.

instagram story viewer