2

任何人都知道这个错误,

TypeError:无法获取属性“pop”的值:对象为空或未定义:

嗨 bru.scopelliti,

这里的代码是:

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

问题是响应对象没有 responseText

4

2 回答 2

1

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

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

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

if (response) {
  // Do stuff
}

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

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

编辑:来自评论:

有几种方法可以检查正在定义的东西,但if (something)orvar x = y || z;不是要走的路,因为错误的值(0, '', etc.)会导致它不起作用。如果您想查看是否定义了某些内容,我会使用if (typeof x === "undefined"). 为了检查对象中的属性,我会使用if (x in obj),或者可能更好,具体取决于场景 - if (obj.hasOwnProperty(x))。为了检查空值,我会使用if (x == null)

于 2012-11-29T09:55:55.407 回答
1

您可能需要检查是否有任何不经意添加或忘记删除的额外逗号。IE 不尊重它。

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

希望这可以帮助。

于 2012-11-29T10:01:22.257 回答