javascript - JavaScript 中的存在运算符?

标签 javascript existential-operator

<分区>

我有一个大的 json 对象。我需要访问 x = a.b.c.d.e.f.g。但是 b(或 cde...)可以是未定义的。此数据结构是从其他地方导入的。

有没有办法在不抛出错误的情况下尝试将 x 赋给 nullundefined

最佳答案

更新

可选链接现在是 ECMAScript 规范的一部分,可以在大多数 javascript 客户端(浏览器、node.js 等)上使用

x = a.b?.c?.d?.e?.f?.g

要在访问失败时使用默认值,您可以使用 Nullish coalescing operator (??)

x = a.b?.c?.d?.e?.f?.g ?? 'my default value'

原始答案(2017)

最简单的方法是使用try catch

try {
  x = a.b.c.d.e.f.g
} catch(e) {
  x = undefined;
}

有一个名为optional chaining 的提案,您可以在这里查看:https://github.com/tc39/proposal-optional-chaining

x = a.b?.c?.d?.e?.f?.g

如果您使用的是转译器,您将能够使用它,但是它仍处于非常早期的阶段,可能不会被规范接受支持

关于javascript - JavaScript 中的存在运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45989370/

相关文章:

javascript - 当页眉到达顶部时 Div 开始滚动,当底部到达页脚时停止滚动

coffeescript - CoffeeScript 的存在运算符是如何工作的?

prolog - Prolog 事实中的存在量化

javascript - .innerHTML 在函数内部不起作用

javascript - Firebase 中未定义的 props

javascript - 隐藏除第一个子级之外的所有子级 div。当我从第一个 div 选择一个单选选项时,显示第二个

javascript - 检查数组中是否存在值(AngularJS)