我正在检查是否(响应[0]。title !== undefined),但我得到的错误:
无法读取未定义的属性“title”。
我正在检查是否(响应[0]。title !== undefined),但我得到的错误:
无法读取未定义的属性“title”。
当前回答
typeof:
var foo;
if (typeof foo == "undefined"){
//do stuff
}
其他回答
检查条件== null; 这将解决问题
检查响应[0]是否实际存在,错误似乎表明它不存在。
typeof:
var foo;
if (typeof foo == "undefined"){
//do stuff
}
您必须首先检查响应[0]是否未定义,如果不是,则检查其余的响应。这意味着在您的情况下,响应[0]是未定义的。
在这些回答中,对于如何使用typeof存在根本性的误解。
不正确的
if (typeof myVar === undefined) {
正确的
if (typeof myVar === 'undefined') {
原因是typeof返回一个字符串。因此,您应该检查它返回的是字符串“undefined”而不是undefined(没有括在引号中),后者本身就是JavaScript的基本类型之一。typeof操作符永远不会返回未定义类型的值。
齿顶高
如果使用不正确的比较,您的代码在技术上可能会工作,但可能不是出于您认为的原因。JavaScript中没有预先存在的未定义变量——它不是某种可以拿来比较的神奇关键字。你可以创建一个名为undefined的变量,并给它任何你想要的值。
let undefined = 42;
下面是一个例子,你可以用它来证明第一种方法是不正确的:
https://jsfiddle.net/p6zha5dm/