首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript变量charCode = (evt.which)?evt.which : event.keyCode;

javascript变量charCode = (evt.which)?evt.which : event.keyCode;
EN

Stack Overflow用户
提问于 2012-02-17 04:03:20
回答 4查看 12.8K关注 0票数 2

如何解释代码var charCode = (evt.which) ? evt.which : event.keyCode?这里发生了什么?我所理解的就是子句将按钮值返回给对象charCode。但是这些是什么呢?和:符号意味着什么?我可以在其他语言中使用这个东西吗?java/c++/php等等?谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-17 04:05:25

它被称为ternary conditional operator。它基本上是if...else的缩写

代码语言:javascript
复制
var charCode;
if(evt.which) {
    charCode = evt.which;
}
else {
    charCode = evt.keyCode;
}

基本上,它计算第一个操作数。如果计算返回true,则返回第二个操作数。如果为false,则返回第三个。

至于你是否可以在其他语言中使用它,你经常可以。从你列出的语言来看,Java和PHP都有它,如果C++没有,我会非常惊讶(编辑--快速谷歌显示,C和C++确实也支持它)。有关更多信息,请参阅Wikipedia

票数 10
EN

Stack Overflow用户

发布于 2012-02-17 04:07:51

首先,var charCode =开始向本地charCode变量赋值。接下来,使用ternary operator。它由三部分组成,条件,如果为真会发生什么,如果为假会发生什么。

代码语言:javascript
复制
(evt.which) ? evt.which : event.keyCode
# condition # if true   # if false

在本例中,它用于功能检测(键盘按键事件)。evt.which是一种合适的方式,但在非常老的浏览器中,您可能想要使用event.keyCode

票数 2
EN

Stack Overflow用户

发布于 2012-09-20 05:23:37

其他人正确地指出,它是以下的简写:

代码语言:javascript
复制
var charCode;
if(evt.which) {
    charCode = evt.which;
}
else {
    charCode = evt.keyCode;
}

但它也是手写的:

代码语言:javascript
复制
var charCode = evt.which || evt.keyCode;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9318255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档