javascript 中 “?.” (javascript 中 “?.” 运算符)

在编程中经常会xua需要读取一个对象的属性值是否存在例如:

// 错误的写法
const  name = response.result.userInfo.name || '';

// 正确的写法
const name= (response
  && response.result
  && response.result.userInfo
  && response.result.userInfo.name) || '';

name属性在对象的第四层,所以需要判断四次,每一层是否有值,这样的层层判断非常麻烦,可以使用“链判断运算符”(?.),简化上面的写法。

const name = response?.result?.userInfo?.name || '';

上面代码使用了?.运算符,直接在链式调用的时候判断,左侧的对象是否为null或undefined。如果是的,就不再往下运算,而是返回undefined。
ECMAScript 6 入门

上一篇:Iot对生活的影响


下一篇:面试 7:快慢指针法玩转链表算法面试(一)