IE9中的Javascript错误

时间:2012-11-29 09:53:29

标签: javascript

任何机构都对此错误有所了解,

  

TypeError:无法获取属性“pop”的值:object为null或undefined:

你好bru.scopelliti,

这里的代码是:

someNode.innerHTML = _self.errorMessage + " : " + ioArgs.xhr.status + " : " +response.responseText;

事情是响应对象没有responseText

2 个答案:

答案 0 :(得分:1)

当您想要访问属性时,如果对象为null或未定义,则会发生此错误。

var x = undefined;
var y = null;
alert(x.pop); // error
alert(x.pop); // error

如果你想检查对象是否为null,你可以这样做:

if (response) {
  // Do stuff
}

如果要检查对象属性是否存在,可以执行以下操作:

if (response) {
   var value = response.responeText || defaultValue
}

编辑:来自评论:

有几种方法可以检查已定义的内容,但if (something)var x = y || z;不是可行的方法,因为假值(0, '', etc.)会导致此操作失效。如果你想看看是否定义了什么,我会使用if (typeof x === "undefined")。为了检查对象中的属性,我会使用if (x in obj),或者可能更好,具体取决于方案 - if (obj.hasOwnProperty(x))。为了检查null,我会使用if (x == null)

答案 1 :(得分:1)

您可能想要检查您可能无意中添加或忘记删除的任何额外逗号。 IE不尊重它。

var foo = {
    a: 1,
    b: 2,
    c: 3, // this last comma will give an error in IE.
}

希望这有帮助。