使用 ECMAScript 2019 的空位合并运算符

阅读时长 4 分钟读完

在 ECMAScript 2019 中,新增了一个空位合并运算符(nullish coalescing operator),它是一个双问号(??)符号。这个运算符的作用是当左侧表达式的结果为 null 或 undefined 时,才会返回右侧表达式的值。在本文中,我们将详细介绍这个运算符的用法和指导意义。

为什么需要空位合并运算符?

在 JavaScript 中,我们经常会遇到需要判断某个值是否为 null 或 undefined 的情况。通常我们会使用 || 运算符来实现这个功能,例如:

这段代码的意思是,如果 value 为 null 或 undefined,那么就返回 'default'。但是,如果 value 的值为 0、空字符串、false 或者其他 falsy 值,那么也会返回 'default',这可能会导致一些意外的行为。

为了解决这个问题,ECMAScript 2019 引入了空位合并运算符。它只在左侧的值为 null 或 undefined 时才会返回右侧的值,否则返回左侧的值。例如:

这段代码的意思是,如果 value 为 null 或 undefined,那么就返回 'default'。如果 value 的值为 0、空字符串、false 或者其他 falsy 值,那么返回的就是 0、空字符串、false 或者其他 falsy 值。

如何使用空位合并运算符?

空位合并运算符的使用非常简单,只需要在表达式中使用双问号(??)符号即可。例如:

这个表达式的意思是,如果 value 为 null 或 undefined,那么就返回 'default'。如果 value 的值不为 null 或 undefined,那么就返回 value 的值。

空位合并运算符还可以和其他运算符一起使用,例如:

这个表达式的意思是,如果 (null || undefined) 的值为 null 或 undefined,那么就返回 'default'。如果 (null || undefined) 的值不为 null 或 undefined,那么就返回 (null || undefined) 的值。

空位合并运算符的指导意义

空位合并运算符的引入,使得我们在判断变量是否为 null 或 undefined 时更加精确,避免了一些意外的行为。它可以帮助我们更好地处理默认值、函数参数等情况,提高了代码的可读性和健壮性。

示例代码

下面是一些示例代码,演示了空位合并运算符的用法:

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

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

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

总结

本文介绍了 ECMAScript 2019 中新增的空位合并运算符,它可以帮助我们更加精确地判断变量是否为 null 或 undefined,避免了一些意外的行为。空位合并运算符的使用非常简单,只需要在表达式中使用双问号(??)符号即可。希望本文可以帮助读者更好地理解和使用空位合并运算符。

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

纠错
反馈