20

我在研究 JSON 的旅途中发现了这段代码:

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

我看到越来越多的?:符号。我什至不知道它叫什么来查找它!任何人都可以为我指出一个很好的资源吗?(顺便说一句,我知道是什么!=意思)。

4

4 回答 4

30

它被称为条件(三元)运算符。它本质上是一个浓缩的 if-else。

所以这:

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

...与此相同:

var array;
if (typeof objArray != 'object') {
    array = JSON.parse(objArray);
} else {
    array = objArray;
}
于 2010-07-23T22:01:25.093 回答
12

它是三元条件运算符——基本上,

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

变成

a = condition ? 4 : 5;
于 2010-07-23T22:02:21.737 回答
11

这称为条件运算符

condition ? expr1 : expr2

如果conditiontrue,则运算符返回expr1;的值 否则,它返回 的值expr2

于 2010-07-23T22:01:45.873 回答
2

像这样读它:

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

将您喜欢的任何内容放在 3 个运算符中。

许多人将其与 IF.. THEN 结构进行比较,事实就是如此。

于 2010-07-24T00:22:12.073 回答