Javascript 是一种广泛应用于 Web 开发的编程语言。它的语法非常灵活,但由于缺乏严格的类型检查机制,有时候代码中会存在一些难以处理的问题。为解决这些问题,ECMAScript 2020 中引入了 Optional Chaining 操作符和 Nullish Coalescing 操作符。在这篇文章中,我们将介绍这两个新操作符并提供示例代码。
Optional Chaining 操作符
在 Javascript 开发中,我们经常需要处理嵌套对象的值。有时候这些对象中有些属性是空值,这时候直接通过点语法获取这些属性的值可能会导致程序出错。可使用 Optional Chaining 操作符(?.)解决这个问题。
Optional Chaining 操作符允许我们在对象属性链上进行安全的访问操作,即便是其中的一个属性为空值。示例如下:
-- -------------------- ---- ------- --- ------ - - ----- -------- -------- - ----- ---------- ------- - ----- ---- ----- ------- --- - - -- --- ------- - -------------------------------- --------------------- -- -- ---------
在上述例子中,我们定义了一个人员对象 person。为了安全的获取该对象中嵌套的 street 对象中的 zipCode 属性,我们使用了 Optional Chaining 操作符。此时 zipCode 将被赋值为 undefined,而不会造成程序出错。
请注意,Optional Chaining 操作符与传统的点访问语法类似,但他们不会报错并返回 undefined 而不是抛出错误。这在编写类型灵活的 Javascript 代码时非常有用。
Nullish Coalescing 操作符
在 Javascript 开发中,我们通常使用 || 操作符来提供默认值。然而,这在遇到类似 0 或者空字符串这样的“假值”时可能会出现问题。引入 Nullish Coalescing 操作符(??)可以解决这个问题。
Nullish Coalescing 操作符提供了一种更精准的方法来提供默认值。它只在值为 null 或者 undefined 时才会提供默认值。示例如下:
-- -------------------- ---- ------- --- ------------ - -- --- -------- - ------------ -- -- ---------------------- -- -- - ------------ - --- -------- - ------------ -- -- ---------------------- -- -- -- ------------ - ----- -------- - ------------ -- -- ---------------------- -- -- -
在上述例子中,我们定义了 currentValue,它的值为一个假值。为了使用 Nullish Coalescing 操作符获取一个默认值,我们使用 ?? 操作符。这时候 newValue 取决于 currentValue 取值情况,当 currentValue 为 null 或 undefined 时,newValue 将被赋值为 5。
请注意,Nullish Coalescing 操作符只在运算结果为 null 或 undefined 时才会提供默认值,否则返回运算结果本身,这在判断运算结果是否等于空是非常有用。
总结
ECMAScript 2020 中引入的 Optional Chaining 操作符和 Nullish Coalescing 操作符是提高 Javascript 代码可靠性和可维护性的重要工具。通过这两个操作符,我们可以更轻松的处理对象访问和提供默认值。当您需要编写健壮的 Javascript 代码时,可尝试使用这两个新操作符。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ae4ac748841e9894a49dc0