检查可能未定义的对象属性

时间:2014-05-27 07:56:23

标签: javascript

说我有以下对象

var book = {
    title: "Javascript Secrets",
    author: "Dummy Mc Dumm",
}

我想测试book.collection.name,知道book.collection可以是undefined

如何避免这样的嵌套测试?

if(book.collection){
    if(book.collection.name == "foo")
        // success
}

提出TypeError: Cannot read property 'name' of undefined

1 个答案:

答案 0 :(得分:3)

逻辑AND运算符(&&)是短路的,如果第一个表达式为假,将跳过第二个表达式

if(book.collection && book.collection.name == "foo"){
    // success
}

请参阅Logical Operators