运算符之-可选链操作符
项目中经常会遇到深层次嵌套属性的验证,我们所能做的就是通过&&每层依次验证,这样看起来代码很繁琐,但又不得不这样做。
//有一个嵌套多层的对象,例如:
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
mdn developer.mozilla.org/zh-CN/docs/…
使用空值合并操作符
let customer = {
name: "Carl",
details: { age: 82 }
};
let customerCity = customer?.city ?? "暗之城";
console.log(customerCity); // “暗之城”
此文借鉴于某大牛的文章基础之上