好用的ES新特性

190 阅读1分钟

运算符之-可选链操作符

项目中经常会遇到深层次嵌套属性的验证,我们所能做的就是通过&&每层依次验证,这样看起来代码很繁琐,但又不得不这样做。

//有一个嵌套多层的对象,例如:
 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); // “暗之城”

此文借鉴于某大牛的文章基础之上