Условный (троичный) оператор (?:)
Возвращает одно из двух выражений в зависимости от условия.
test ? expression1 : expression2
Аргументы
тест
Любое логическое выражение.expression1
Выражение, возвращаемое, если test равно true. Может быть выражением с запятыми.expression2
Выражение, возвращаемое, если test равно false. Может быть выражением с запятыми.
Заметки
Оператор ?: можно использовать в качестве ярлыка для оператора if...else. Обычно он используется в качестве части более крупного выражения, когда использование оператора if...else нецелесообразно. Пример.
var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");
Данный пример создает строку, содержащую "Good evening.", если позже 18 часов. Эквивалентный код с использованием оператора if...else будет таким.
var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
greeting += " evening.";
else
greeting += " day.";