a = (a == b) ? c: b;
我不明白。所有的 {a, b, c} 都是程序员设置的具有特定值的变量。
这称为三元运算符:这与执行以下操作相同:
if(a == b)
a = c;
else
a = b;
如果a
等于b
则a
=c
否则a
= b
。
这是 if 和 assignment 的简写形式。
q = x ? y : z
q 是您分配给 x 的变量,它是一个布尔表达式,它是真或假。如果它是真的 y 将被分配给你的变量 q 否则 z 将被分配给 q。
这是三元运算符,相当于:
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 的绝佳参考。
如果a
等于b
则分配c
给a
,否则分配b
给a
用英语讲 -
If a is equal to b, then a = c. otherwise, a = b
?: 语法是三元运算符。本质上,它意味着如果a
等于,则b
等于,否则a
等于c
a
b