我已经看过几次,但我从来不知道这是什么意思。它的名称是什么以及它是如何工作的?
以下是我看到的例子:
input.checked = input.type == "radio" ? true : false;
答案 0 :(得分:6)
该示例中有一个额外的 =
,我认为你的意思是:
input.checked = input.type == "radio" ? true : false;
(现已修复。)
如果true
,则会将input.checked
分配给input.type == "radio"
,如果不false
,则分配给expression ? trueResult : falseResult
。
这
true
...被称为条件运算符(或者有时候,“三元”运算符 - 从技术上讲,它只是一个三元运算符,例如,一个运算符需要三个操作数)。更多信息在Section 11.12中。
在这种情况下,使用条件运算符绝对没有意义,因为等价表达式的结果无论如何都是false
或input.checked = input.type == "radio";
,所以它可以写成:
1
...但是有很多地方条件运算符很有用。例如,假设您想将2
或x
分配给y
,具体取决于x = y == 42 ? 1 : 2;
是否为42:
?
您可以将:
视为问一个是或否的问题,然后是“是”答案,以及{{1}}之后的“否”答案。
答案 1 :(得分:3)
也许这样容易理解:
input.checked = (input.type == "radio")? true : false;
它基本上是 if else 。如果表达式为真,则 input.checked 将设置为第一个值,否则为第二个值。
<强> [编辑] 强>
注意,在JavaScript中,在评估字符串以检查类型相等时,应始终使用'==='而不是'=='。
答案 2 :(得分:0)
这是一个三元表达。这是一个简写:
if (input.type == "radio") {
input.checked = true;
} else {
input.checked = false;
}
然而,在这个特定的例子中存在冗余。它可以简单地写成:
input.checked = input.type == "radio";
答案 3 :(得分:0)
也许第一个==
是=
?
它看起来像ternary operator.(其他短 - 如果结构)