//定义一个对象
let obj={userInfo:{name:'hzq',tel:'1234567778',other:{name:'hzq2',title:'名字'}},title:'哈哈'}
//获取对象内部的other对象的name属性值值
let msg=obj && obj.useInfo && obj.userInfo.other && obj.userInfo.other.name
在访问obj.userInfo.other.name之前,你必须要确保obj和obj.userInfo和obj.userInfo.other的值都是非null且不是undefined。假设其一是null或者undefined的,那么直接访问obj.userInfo.other.name就可能产生错误,报错为Cannot read property 'name' of undefined,这时你就挠头了…
有了可选链式,你只要这么写就可以抛弃上面又长又冗余的代码了:
//定义一个对象
let obj={userInfo:{name:'hzq',tel:'1234567778',other:{name:'hzq2',title:'名字'}},title:'哈哈'}
//可选链获取对象内部的other对象的name属性值值
let msg=obj?.userInfo?.other?.name