Это сокращение в одну строку для оператора if-else.Он называется условным оператором. 1
Вот пример кода, который можно сократить с помощью условного оператора:
if(userIsYoungerThan21) {
serveGrapeJuice();
}
else {
serveWine();
}
Это можно сократить с помощью ?:
примерно так:
userIsYoungerThan21 ? serveGrapeJuice() : serveWine();
В Javascript условный оператор может вычислять выражение, а не просто выражение:
var userType = userIsYoungerThan18 ? "Minor" : "Adult";
serveDrink(userIsYoungerThan21 ? "Grape Juice" : "Wine");
Они могут даже быть связаны:
userIsYoungerThan4 ? serveMilk() : userIsYoungerThan21 ? serveGrapeJuice() : serveWine();
Будьте осторожны, иначе вы получите замысловатый код, подобный следующему:
var k = a ? (b ? (c ? d : e) : (d ? e : f)) : f ? (g ? h : i) : j;
1 Часто называемый "троичным оператором", нона самом деле это просто троичный оператор [оператор, принимающий три операнда].Это единственный JavaScript, который есть на данный момент.