javascript:如何检查属性是undefined
问题描述:
我有以下代码。javascript:如何检查属性是undefined
elem.onkeypress=function(e){
if((e.which===undefined?e.keyCode:e.which)==13){
//dosomething
}
}
在IE8,它occus误差修改:'which' is null or not an object
如何解决这个问题。
答
去的问题是,e
在IE,因为没有事件对象作为参数传递给事件处理程序通过不确定的。您需要window.event
属性:的[检查在JavaScript“未定义”的最佳方式]
elem.onkeypress=function(e) {
e = e || window.event;
var charCode = e.which || e.keyCode;
if (charCode == 13) {
//dosomething
}
};
答
使用的typeof:
if (typeof e.which == 'undefined' ? e.keyCode : e.which) == 13)
答
一种方式是通过(e.hasOwnProperty('which') ? ...
可能重复(http://*.com/questions/3390396/best-way-to-check-for-未定义在JavaScript)和其他... – 2010-10-21 08:48:39
有点不同是这一个是检查wheather一个对象的属性是未定义的,而不是一个变量。 – 2010-10-21 09:12:41
该问题与'which'属性的'undefined'检查无关。问题是'e'是未定义的。 – 2010-10-21 09:14:01