你怎么看这个JavaScript代码?(var1?var2:var3)

Chr*_*ski 2 javascript operators

我已经看到了JavaScript代码中使用的这种格式,但找不到合理的意义来源.

编辑后续行动:

感谢所有快速解答!我觉得它就像那样.现在,获得奖励积分:

你能用吗(var1?var2)

做同样的事情

    if (var1) {
        var2
    }
Run Code Online (Sandbox Code Playgroud)

Dre*_*kes 17

它被称为三元(因为它有三个操作数)条件(因为它是if/else/then)运算符.

它被计算为一个值,因此您通常会使用它来赋值,例如:

var result = condition ? value1 : value2;
Run Code Online (Sandbox Code Playgroud)

这相当于:

var result;
if (condition == true) {
  result = value1;
} else {
  result = value2;
}
Run Code Online (Sandbox Code Playgroud)

一个例子:

var message = "Length is " + len + " " + (len==1 ? "foot" : "feet");
Run Code Online (Sandbox Code Playgroud)

注意?:是完整的运算符.这不是一个?:运营商,因此?其本身是在Javascript中毫无意义.

  • 我认为你的第一个==是一个错字. (5认同)
  • 两位代码也不相同,因为第二位代码应该以"var result;"开头. (3认同)

rah*_*hul 6

它是一个条件运算符.

它是

如果var1则var2否则var3

在这里阅读更多

条件运算符

条件运算符是唯一需要三个操作数的JavaScript运算符.此运算符经常用作if语句的快捷方式.

  • -1.这真的是错误的方法.您不希望值表达式修改任何内容,您只希望整个表达式的值为true侧的值或false侧的值,这是此运算符的用途. (3认同)
  • @phoenix也许您的示例并未显示条件运算符的确切用法.它可以简化为`var xCon = num == 1;` (2认同)