如何安全地调用可能未定义的键Javascript

时间:2019-01-09 02:07:08

标签: javascript react-native ecmascript-6

我们如何使用safe navigation operator null/nil/undefined

安全地浏览Javascript中潜在的&.

例如,在Ruby中,给定这样一个“看起来”的对象

person = {
  address: {
    street: '6823 Morgana Rd'
  }
}

我们可以做类似的事情(伪代码)。

person&.phone&.areacode
// Undefined

人员对象仅定义了一个键address。因此,phone和它自己的密钥/属性/方法areacode均未定义。

在Javascript中,给定相同的对象,

const person = { address: { street: '6823 Morgana Rd' } }

第一个方法调用电话将返回undefined(安全)。

person.phone
// undefined

但是

person.phone.areacode

引发错误

Uncaught TypeError: Cannot read property 'areacode' of undefined

我不知道有没有可以让我安全地这样做的操作员?

我知道我们可以使用逻辑运算符。

person && person.phone && person.phone.areacode

我知道我们可以做条件查询。

if (person) {
  if (person.phone) {
    if (person.phone.areacode) {
    }
  }
}

我宁愿不做那些事。

谢谢!

0 个答案:

没有答案