项目中经常会遇到深层次嵌套属性的验证,我们所能做的就是通过&&每层依次验证,这样看起来代码很繁琐,但又不得不这样做。
有一个嵌套多层的对象,例如:
let obj = {
attr: {
name: '王二小'
}
}
获取name的值
let n_val = obj.attr.name
如果这样直接获取可能会报错,导致程序异常,所以我们需要对 obj 、attr此次验证
即: let n_val = obj && obj.attr && obj.attr.name
这样做确实能避免一些报错,但看起来代码终归是有些繁琐,于是便找到了简化上述代码的方法,即是可选链操作符,代码如下
let n_val = obj?.attr?.name
这样看起来代码确实简化很多,当然,由于是新特性,还是实验中的功能,会有一些兼容性,具体文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/%E5%8F%AF%E9%80%89%E9%93%BE#Browser_compatibility