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

如何解决这个问题。

+1

可能重复(http://*.com/questions/3390396/best-way-to-check-for-未定义在JavaScript)和其他... – 2010-10-21 08:48:39

+0

有点不同是这一个是检查wheather一个对象的属性是未定义的,而不是一个变量。 – 2010-10-21 09:12:41

+0

该问题与'which'属性的'undefined'检查无关。问题是'e'是未定义的。 – 2010-10-21 09:14:01

去的问题是,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') ? ...