JavaScript中的"?:"符号是什么?

web*_*ad3 15 javascript syntax coding-style operators notation

我在研究JSON的过程中发现了这段代码:

var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*ins 26

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

所以这:

var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
Run Code Online (Sandbox Code Playgroud)

......与此相同:

var array;
if (typeof objArray != 'object') {
    array = JSON.parse(objArray);
} else {
    array = objArray;
}
Run Code Online (Sandbox Code Playgroud)

  • 实际上它是一个条件运算符CALLED,但它是一个三元运算符.三元运算符是任何需要3个输入的运算.然而,在许多情况下,三元运算符已成为条件的同义词,因为条件是该语言中最有名或有时唯一的三元运算符.例如,++ - 被称为一元运算符,+ - /被称为二元运算符等.但这只是语义,好的答案,再加上1. :) (21认同)

Ale*_*ler 12

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

if (condition) {
   a = 4;
}
else {
   a = 5;
}
Run Code Online (Sandbox Code Playgroud)

a = condition ? 4 : 5;
Run Code Online (Sandbox Code Playgroud)


Gum*_*mbo 11

这叫做条件运算符:

condition ? expr1 : expr2
Run Code Online (Sandbox Code Playgroud)

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