这段代码做了什么? a =(a == b)? c:b;

时间:2013-06-27 16:36:34

标签: javascript

a = (a == b) ? c: b;

我不明白。所有这些{a,b,c}都是由程序员设置的具有一定值的变量。

7 个答案:

答案 0 :(得分:4)

这称为ternary operator:与执行相同:

if(a == b)
 a = c;
else
 a = b;

答案 1 :(得分:1)

如果a等于b,则a = c,否则a = b

答案 2 :(得分:1)

这是if和作业的简短形式。

q = x? y:z

q是您指定的变量 x是一个布尔表达式,它将为true或false。 如果确实如此,则y将被分配给您的变量q 否则z将被分配给q。

答案 3 :(得分:0)

这是ternary operator,相当于:

if (a == b) {
  a = c;
} else {
  a = b;
}

主要区别在于if/else由条件语句组成,而三元运算符是条件表达式。换句话说,三元运算符的工作方式就像if / else返回一个值一样。在其他一些语言中,if/else也是表达式,因此以下内容有效,实际上等同于?:

a = (if (a == b) { c; } else { b; }) // not valid javascript

务必检查https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

Mozilla开发者网络是JavaScript的绝佳参考。

答案 4 :(得分:0)

如果a等于b,则将c分配给a,否则将b分配给a

答案 5 :(得分:0)

英文 -

If a is equal to b, then a = c. otherwise, a = b

答案 6 :(得分:0)

?:语法是ternary operator。基本上,这意味着如果a等于b,则a等于c,否则a等于b