Что такое "?: нотация" в 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
istrue
оператор возвращает значениеexpr1
; в противном случае она возвращает значениеexpr2
.
просто прочитайте это так:
result = (condition) ? (true value) : (false value);
поместите то, что вам нравится, в 3 оператора.
как многие сравнили его с IF.. Тогда структура, так оно и есть.