Что такое "?: нотация" в JavaScript?

Я нашел этот фрагмент кода в своих путешествиях в исследовании JSON:

var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;

Я вижу все больше и больше ? и : нотации. Я даже не знаю, как это называется, чтобы посмотреть его! Может ли кто-нибудь указать мне хороший ресурс для этого? (кстати, я знаю, что != средства).

4 ответов


Это называется условный (троичный) оператор. Это, по сути, сжатый if-else.

значит так:

var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;

...то же самое, что и это:

var array;
if (typeof objArray != 'object') {
    array = JSON.parse(objArray);
} else {
    array = objArray;
}

Это тернарный условный оператор -- в основном,

if (condition) {
   a = 4;
}
else {
   a = 5;
}

становится

a = condition ? 4 : 5;

Это называется условный оператор:

condition ? expr1 : expr2

если condition is true оператор возвращает значение expr1; в противном случае она возвращает значение expr2.


просто прочитайте это так:

result = (condition) ? (true value) : (false value);

поместите то, что вам нравится, в 3 оператора.

как многие сравнили его с IF.. Тогда структура, так оно и есть.