嵌套对象,防止"无法获取'undefined'的值"

Gri*_*yan 2 javascript json

假设我有一个名为John的对象,里面有许多其他嵌套对象,我试图按照这种方式访问​​它们

if (john.address.highstreet) {
    var highstreet = john.address.highstreet
}
Run Code Online (Sandbox Code Playgroud)

但如果address属性为null,那么我将收到错误

unable to get property 'highstreet' of undefined
Run Code Online (Sandbox Code Playgroud)

并且我的函数执行停止

有没有一种方法可以访问嵌套属性,而无需使用如下所示的许多嵌套if语句:

if (john.address) {
    if (john.address.highstreet) {
        var highstreet = john.address.highstreet
    }
}
Run Code Online (Sandbox Code Playgroud)

Eua*_*ith 6

标准方式是

if (john.address && john.address.highstreet) {
    var highstreet = john.address.highstreet
}
Run Code Online (Sandbox Code Playgroud)

如果地址未定义,那么将返回该地址.