当我们从某个嵌套多层的数据结构里取出某个属性的时候,往往需要验证取出该属性的路径中的每个对象(或数组)是否存在,否则很有可能会报undefined的错误 在ES5中,我们的做法是通过 && 来做路径中对象(或数组)是否存在的判断,随着嵌套的层次越多,要写的逻辑就越长,不便于阅读和维护。 为此,ES6给出的解决方案是 可选链运算符 除此之外,一些第三方工具库和ui框架也内置有此方法,比如lodash的操作对象的_.get()方法 第三方uniapp的UI框架,uview的内置api里的getProperty(object, key)方法 这三种方式都可以忽略中间路径的对象(或数组)是否存在的判断,直接判断取的目标数据,有就有,没有就是undefined或者自己设置的defaultValue默认值,从而使得代码更易阅读和维护。