Úvod do úlohy

V JavaScriptu se často potřebujeme rozhodnout mezi dvěma možnostmi – například vybrat správný text, číslo nebo barvu podle nějaké podmínky. Obvykle bychom použili klasickou konstrukci if–else, která je srozumitelná a univerzální. Pokud je ale podmínka jednoduchá a výsledek má být jedna hodnota, nabízí se úspornější zápis: ternární operátor ? :. Ten umožňuje zapsat podmínku na jediném řádku a rovnou vrátit jednu z hodnot.

Ternární operátor je tedy zkrácený zápis podmínky. Je funkčně ekvivalentní k if–else, ale díky svému tvaru se hodí jen pro krátké a přehledné situace, nikoliv pro složité větvení.


Teorie a principy

  • Syntaxe:

  • Pokud je podmínka pravdivá, výraz vrátí hodnotaPokudTrue.

  • Pokud je podmínka nepravdivá, vrátí hodnotaPokudFalse.

  • Výsledek ternárního operátoru můžeme rovnou přiřadit do proměnné, použít v textu nebo v jiném výrazu.

Ekvivalence s if–else:

je stejné jako:


Praktické příklady kódu

1) Jednoduchý výběr textu podle věku

2) Kratší zápis matematické volby


Typické chyby

  • Použití pro příliš složité podmínky – když se ternární operátor zanoří nebo má příliš dlouhé větve, kód se stává nepřehledným. V takovém případě je lepší klasické if–else.

  • Záměna s klasickým if – ternární operátor není příkaz, ale výraz, tedy musí vracet hodnotu. Nelze jej psát samostatně, pokud nevracíme výsledek.

  • Nevhodné formátování – pokud se ternární operátor píše bez mezer, čte se velmi špatně. Vždy doporučujeme formát podmínka ? hodnota1 : hodnota2.


Shrnutí

  • Ternární operátor ? : je zkrácený zápis podmínky, která vrací hodnotu.

  • Syntaxe: podmínka ? hodnotaPokudTrue : hodnotaPokudFalse.

  • Je funkčně ekvivalentní if–else, ale zapisuje se na jeden řádek.

  • Hodí se jen pro krátké a jednoduché podmínky (výběr textu, čísla, barvy).

  • U složitějších podmínek zůstaňte u klasického if–else pro čitelnost.