美文网首页
对象扩展之-----链判断运算符

对象扩展之-----链判断运算符

作者: 大咔丶 | 来源:发表于2020-06-19 13:42 被阅读0次

编程实务中,如果读取对象内部的某个属性,往往需要判断一下该对象是否存在。比如,要读取message.body.user.firstName,安全的写法是写成下面这样。

const firstName = (message
  && message.body
  && message.body.user
  && message.body.user.firstName) || 'default';

或者使用三元运算符?:,判断一个对象是否存在。

const fooInput = myForm.querySelector('input[name=foo]')
const fooValue = fooInput ? fooInput.value : undefined

这样的层层判断非常麻烦,因此 ES2020 引入了“链判断运算符”(optional chaining operator)?.,简化上面的写法。

const firstName = message?.body?.user?.firstName || 'default';
const fooValue = myForm.querySelector('input[name=foo]')?.value

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

更详细参考https://es6.ruanyifeng.com/#docs/object

相关文章

网友评论

      本文标题:对象扩展之-----链判断运算符

      本文链接:https://www.haomeiwen.com/subject/dvjvxktx.html