任何人都知道这个错误,
TypeError:无法获取属性“pop”的值:对象为空或未定义:
嗨 bru.scopelliti,
这里的代码是:
someNode.innerHTML = _self.errorMessage + " : " + ioArgs.xhr.status + " : " +response.responseText;
问题是响应对象没有 responseText
任何人都知道这个错误,
TypeError:无法获取属性“pop”的值:对象为空或未定义:
嗨 bru.scopelliti,
这里的代码是:
someNode.innerHTML = _self.errorMessage + " : " + ioArgs.xhr.status + " : " +response.responseText;
问题是响应对象没有 responseText
当您想要访问属性时,当对象为空或未定义时,会发生此错误。
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)
您可能需要检查是否有任何不经意添加或忘记删除的额外逗号。IE 不尊重它。
var foo = {
a: 1,
b: 2,
c: 3, // this last comma will give an error in IE.
}
希望这可以帮助。