EcmaScript 6 中的 NULL 安全属性访问和条件赋值
能够访问可能为 null 或未定义的对象的属性,而不会导致错误称为空安全属性访问。另一方面,条件赋值仅允许在满足特定条件时才赋值。
在 EcmaScript 6 中,多个运算符支持空安全属性访问和条件赋值。
可选链 (?.)
ES2020 中引入,可选链允许访问可能为 null 或未定义的对象的属性,无一例外。它使用 ?。运算符,它返回未定义而不是引发错误:
const query = succeed => (succeed ? { value: 4 } : undefined); let value = 3; for (let x of [true, false]) { value = query(x)?.value; } console.log(value); // Output: 4
空合并赋值 (??=)
空合并赋值运算符 (??=)仅当当前值为 null 或未定义时才为变量赋值。它返回赋值的结果:
let value = 3; value ??= query(false)?.value; console.log(value); // Output: 3
兼容性
主要现代浏览器和 Node.js 版本支持可选链,同时支持 nullish 合并赋值在浏览器和 Node.js v14 中。对于较旧的环境,请考虑使用 Babel 或 polyfill。
替代方案
在这些运算符之前,解决方法包括:
结论
可选链和 nullish 合并赋值为简洁的 null 安全属性访问提供了强大的工具和 EcmaScript 6 中的条件赋值。它们简化了代码,增强了可读性,并减少了出错的可能性。
以上是可选链接和空值合并如何改进 ES6 中的空安全属性访问和条件分配?的详细内容。更多信息请关注PHP中文网其他相关文章!