JavaScript ES9 中实现真空合并(Implementing Null Coalescing in JavaScript ES9)

阅读时长 4 分钟读完

在 JavaScript 中,我们经常需要处理变量为 null 或 undefined 时的情况。在 ES9 中,JavaScript 引入了一个新的运算符 "?? ",也称为真空合并(Null Coalescing),可以轻松地处理这种情况,本文将对其进行详细介绍。

什么是真空合并运算符?

真空合并运算符 "?? "用于查找不存在、未定义或 null 的值。如果左侧操作数为 null 或 undefined,则返回右侧操作数。否则,返回左侧操作数。

以下是真空合并运算符的基本语法:

在上面的语法中,如果变量 a 为 null 或 undefined,则返回变量 b 的值。否则,返回变量 a 的值。

使用真空合并运算符的优势

使用真空合并运算符,可以避免在处理多层嵌套的对象时遇到的一些问题,例如“Cannot read property 'x' of undefined”。真空合并运算符可以使代码更加简洁,也可以避免大量的 if…else 语句。

以下是使用真空合并运算符的示例代码:

-- -------------------- ---- -------
----- ------- - ---- -- --------
----- ------- - --------- -- --------
----- ------- - ----- -- --------
----- ------- - - -- --------

--------------------- -- -------
--------------------- -- -------
--------------------- -- -----
--------------------- -- -

在上面的代码中,当变量 result1 和 result2 的值分别赋为 null 和 undefined 时,都将返回右侧的 'Hello'。当变量 result3 和 result4 的值分别为 false 和 0 时,则返回它们自己的值。

真空合并运算符与逻辑或运算符的区别

在处理 null 或 undefined 值时,有些开发人员习惯于使用逻辑或运算符 "|| "。逻辑或运算符是 JavaScript 中一种常用的运算符,左右两侧的操作数都为布尔类型。如果左侧操作数为 true,则返回它的值。否则,返回右侧操作数的值。

以下是逻辑或运算符的基本语法:

如果变量 a 不是 null 或 undefined,则返回变量 a 的值。否则,返回变量 b 的值。

与真空合并运算符相比,逻辑或运算符存在一个问题,那就是当变量 a 的值为 false、0 或者空字符串时,依然会返回变量 b 的值。要避免这种情况,我们需要使用额外的代码来检查变量 a 的 truthy 值,这样可以使代码变得冗长而难以维护。

使用真空合并运算符的示例

下面是一个简单的例子,说明如何使用真空合并运算符来简化代码。

-- -------------------- ---- -------
 ----- -------- - -
    ----- ------- 
    -------- -
        ----- ---- ------
    -
--

----- -------- - ----------------------- -- ----------

---------------------- -- ---- -----

在上面的代码中,我们使用真空合并运算符来检查 userData 对象中的属性。如果对象中的属性不存在,则返回 'Unknown'。如果属性存在,则返回属性的值。

结论

ES9 中的真空合并运算符使得处理 null 或 undefined 值的代码更加简洁易懂。尽管与逻辑或运算符相比,真空合并运算符的语法略有不同,但在处理特定情况时,它可以提供更好的解决方案,使代码变得更加简洁和易维护。我们应该适当使用真空合并运算符来优化代码。

参考

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/672b10c2ddd3a70eb6d18795

纠错
反馈