我正在开发一个需要大量javascript编码的项目。我是Javascript的新手。
刚发现一个代码却无法理解。有人可以向我解释一下吗?我试图寻找答案,但没有结果。
var keyCode = (e.keyCode ? e.keyCode : e.which);
我只想知道'?'和':'表示上面的代码。还有其他方法可以写出来吗?
非常感谢。
答案 0 :(得分:4)
您看到的语法称为三元运算符。当if... else...
语句可能不必要或太长时,通常会使用它。您将在上面的条件变量赋值中看到很多。
基本上,语法是这样的:
([condition to test] ? [what should we do if true] : [what should we do if false])
。
这是
的简写if([condition to test]) {
[what should we do if true];
}
else {
[what should we do if false];
}
在该示例中,我们尝试分配var keyCode
。由于某些浏览器使用e.which
传递所按键的数值,因此我们必须同时考虑e.keyCode
或e.which
,并指定适当的值。
同样重要的是要注意:e.keyCode
不一定是布尔值。但是,在JavaScript中,任何变量都可以解释为boolean。如果未定义e.keyCode
,则false
具有布尔值{{1}}。
答案 1 :(得分:1)
var keyCode;
if (e.keyCode) {
keyCode = e.keyCode;
} else {
keyCode = e.which;
}
答案 2 :(得分:1)
它是if / else的缩写。
var keyCode;
if (e.keyCode) {
keyCode = e.keyCode;
} else {
keyCode = e.which;
}