<分区>
我有一个大的 json 对象。我需要访问 x = a.b.c.d.e.f.g
。但是 b
(或 c
、d
、e
...)可以是未定义的。此数据结构是从其他地方导入的。
有没有办法在不抛出错误的情况下尝试将 x
赋给 null
或 undefined
?
<分区>
我有一个大的 json 对象。我需要访问 x = a.b.c.d.e.f.g
。但是 b
(或 c
、d
、e
...)可以是未定义的。此数据结构是从其他地方导入的。
有没有办法在不抛出错误的情况下尝试将 x
赋给 null
或 undefined
?
最佳答案
可选链接现在是 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'
最简单的方法是使用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/