这种语法意味着什么:? event.charCode:event.keyCode;

时间:2012-10-22 06:31:20

标签: javascript

我对JavaScript很陌生,所以我仍然会遇到一些我不太了解的小东西,当我搜索它们时似乎没有出现。 请有人能指出我的意思吗? :语法在下面做。

var chCode = ('charCode' in event) ? event.charCode : event.keyCode;

6 个答案:

答案 0 :(得分:9)

这称为ternary operator。这是一个简短的if...else声明。

基本上,您的代码可以扩展到此。

var chCode;

if ('charCode' in event) {
    chCode = event.charCode;
} else {
    chCode = event.keyCode;
}

答案 1 :(得分:1)

是三元运算符

  

?:运算符可用作if ... else语句的快捷方式。它通常用作较大表达式的一部分,其中if ... else语句会很笨拙。

var chCode = ('charCode' in event) ? event.charCode : event.keyCode;

相同
var chCode;

if ('charCode' in event) {
    chCode = event.charCode;
} else {
    chCode = event.keyCode;
}

test ? expression1 : expression2
  

expression1 =如果test为真,则返回一个表达式   expression2 = when false

答案 2 :(得分:1)

ternary operator

您的代码使用?应该看起来像

var chCode = ('charCode' in event) ? event.charCode : event.keyCode;


if('charCode' in event){
 chCode = event.charCode;
} else {
 chCode = event.keyCode;
}

答案 3 :(得分:1)

正如其他人所说,这是一个三元组。

你可以用它来表达它......

var chCode = event.charCode || event.keyCode;

答案 4 :(得分:0)

翻译:

var chCode;
if ('charCode' in event) chCode = event.charCode
else chCode = event.keyCode;

答案 5 :(得分:0)

event.keyCode:返回按键事件中的非字符键的Unicode值或任何其他类型键盘事件中的任何键。

event.charCode:返回按键事件期间按下的字符键的Unicode值。

-

LInk for event.KeyCode