有人可以向我解释这个javascript声明吗?

时间:2014-03-31 23:30:46

标签: javascript

我正在开发一个需要大量javascript编码的项目。我是Javascript的新手。

刚发现一个代码却无法理解。有人可以向我解释一下吗?我试图寻找答案,但没有结果。

var keyCode = (e.keyCode ? e.keyCode : e.which);

我只想知道'?'和':'表示上面的代码。还有其他方法可以写出来吗?

非常感谢。

3 个答案:

答案 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.keyCodee.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;
}