我正在检查是否(响应[0]。title !== undefined),但我得到的错误:

无法读取未定义的属性“title”。


当前回答

检查条件== null; 这将解决问题

其他回答

检查响应[0]是否未定义:

if(response[0] !== undefined) { ... }

如果你仍然需要显式检查标题,请在初始检查之后执行:

if(response[0] !== undefined && response[0].title !== undefined){ ... }

您必须首先检查响应[0]是否未定义,如果不是,则检查其余的响应。这意味着在您的情况下,响应[0]是未定义的。

我在上面的所有其他代码示例中都遇到了问题。在Chrome中,这是适合我的条件:

typeof possiblyUndefinedVariable !== "undefined"

我将不得不在其他浏览器中测试,看看事情是如何发展的。

typeof:

var foo;
if (typeof foo == "undefined"){
  //do stuff
}

实际上,你必须用一个Try/Catch块来包围它,这样你的代码就不会停止工作。 是这样的:

try{
    if(typeof response[0].title !== 'undefined') {
        doSomething();
    }
  }catch(e){
    console.log('responde[0].title is undefined'); 
  }