第2行和第3行代码的含义是什么?我想了解它。谢谢。
function stopRKey(evt) {
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if ((evt.keyCode == 13) && (node.type=="text")) {
addItemToList();
return false;}
}
document.onkeypress = stopRKey;
?:
是一个三元运算符。点击这里查看。
var a = (b === true) ? 1 : 0;
翻译
if (b === true)
var a = 1;
else
var a = 0;
var evt = (evt) ? evt : ((event) ? event : null);
表示,如果evt
为真,则var evt = evt
(无变化)。
如果不是,(evt == null
, evt === false
等),如果event
为真,则赋值给event
。否则赋值给null
。
var evt = (evt) ? evt : ((event) ? event : null);
以上意思是:如果evt为真,则evt保持为真。否则,如果为假,则检查事件是否为真。如果event为false,将evt设置为event,则将evt设置为null。
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
以上表示如果evt)。目标为true,将节点设置为evt。target else如果为false,则检查event . srcelement。如果为true,则将node设置为evt。如果它为false,则将node设置为null
这种类型的代码使用三元操作符