如何解释代码var charCode = (evt.which) ? evt.which : event.keyCode?这里发生了什么?我所理解的就是子句将按钮值返回给对象charCode。但是这些是什么呢?和:符号意味着什么?我可以在其他语言中使用这个东西吗?java/c++/php等等?谢谢
发布于 2012-02-17 04:05:25
它被称为ternary conditional operator。它基本上是if...else的缩写
var charCode;
if(evt.which) {
charCode = evt.which;
}
else {
charCode = evt.keyCode;
}基本上,它计算第一个操作数。如果计算返回true,则返回第二个操作数。如果为false,则返回第三个。
至于你是否可以在其他语言中使用它,你经常可以。从你列出的语言来看,Java和PHP都有它,如果C++没有,我会非常惊讶(编辑--快速谷歌显示,C和C++确实也支持它)。有关更多信息,请参阅Wikipedia。
发布于 2012-02-17 04:07:51
首先,var charCode =开始向本地charCode变量赋值。接下来,使用ternary operator。它由三部分组成,条件,如果为真会发生什么,如果为假会发生什么。
(evt.which) ? evt.which : event.keyCode
# condition # if true # if false在本例中,它用于功能检测(键盘按键事件)。evt.which是一种合适的方式,但在非常老的浏览器中,您可能想要使用event.keyCode。
发布于 2012-09-20 05:23:37
其他人正确地指出,它是以下的简写:
var charCode;
if(evt.which) {
charCode = evt.which;
}
else {
charCode = evt.keyCode;
}但它也是手写的:
var charCode = evt.which || evt.keyCode;https://stackoverflow.com/questions/9318255
复制相似问题