2

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

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

6 回答 6

9

这称为三元运算符。这是一个简短的if...else声明。

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

var chCode;

if ('charCode' in event) {
    chCode = event.charCode;
} else {
    chCode = event.keyCode;
}
于 2012-10-22T06:33:29.380 回答
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 = 如果测试为真则返回
表达式 expression2 = 如果为假

于 2012-10-22T06:33:27.710 回答
1

三元运算符

你的代码?应该看起来像

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


if('charCode' in event){
 chCode = event.charCode;
} else {
 chCode = event.keyCode;
}
于 2012-10-22T06:33:39.657 回答
1

正如其他人所说,它是三元组。

你可以让它更简洁...

var chCode = event.charCode || event.keyCode;
于 2012-10-22T06:34:17.520 回答
0

翻译:

var chCode;
if ('charCode' in event) chCode = event.charCode
else chCode = event.keyCode;
于 2012-10-22T06:33:38.283 回答
0

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

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

--

event.KeyCode 的链接

于 2012-10-22T06:35:07.537 回答