Jednoduše řečeno, co je ?:
(podmíněný, „ternární“) operátor a jak jej mohu použít?
Odpověď
Toto je jednořádková zkratka pro příkaz if-else. Říká se tomu podmíněný operátor. 1
Zde je příklad kódu, který lze zkrátit pomocí podmíněného operátoru:
var userType; if (userIsYoungerThan18) { userType = "Minor"; } else { userType = "Adult"; } if (userIsYoungerThan21) { serveDrink("Grape Juice"); } else { serveDrink("Wine"); }
Toto lze zkrátit pomocí ?:
takhle:
var userType = userIsYoungerThan18 ? "Minor" : "Adult"; serveDrink(userIsYoungerThan21 ? "Grape Juice" : "Wine");
Jako všechny výrazy lze i podmíněný operátor použít jako samostatný příkaz s vedlejšími účinky, i když mimo minifikace je to neobvyklé:
userIsYoungerThan21 ? serveGrapeJuice() : serveWine();
Mohou být dokonce spoutány:
serveDrink(userIsYoungerThan4 ? 'Milk' : userIsYoungerThan21 ? 'Grape Juice' : 'Wine');
Buďte však opatrní, jinak skončíte se spletitým kódem takto:
var k = a ? (b ? (c ? d : e) : (d ? e : f)) : f ? (g ? h : i) : j;
1 Často se mu říká „ternární operátor“, ale ve skutečnosti je to jen a ternární operátor [operátor akceptující tři operandy]. Je to však jediný, který JavaScript v současnosti má.