ES11 Nullish Coalescing 运算符详解以及与 || 运算符的比较

前言

在 JavaScript 中,经常会遇到变量或值不存在、为空或者是 null 或 undefined 的情况。这可能会产生一些不可预测的行为,导致应用程序的错误和异常。

ES11 新增了 Nullish Coalescing 运算符,它可以帮助我们解决这个问题,本篇文章将介绍 Nullish Coalescing 运算符的详细用法,以及与 || 运算符的比较。

Nullish Coalescing 运算符

Nullish Coalescing 运算符(??)是一个逻辑运算符,它用于测试一个变量是否为 null 或者 undefined。如果变量为 null 或者 undefined,则返回默认值,否则返回变量本身。它的语法格式如下:

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

下面是一个简单的示例代码:

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

在上述示例代码中,如果 name 为空,则会使用默认值 anonymous。

Nullish Coalescing 运算符和 || 运算符有些相似,但也有一些重要的区别。

|| 运算符

在 JavaScript 中,|| 运算符经常被用于提供默认值。它的语法格式如下:

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

下面是一个示例代码:

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

在上述示例代码中,如果 name 为空、null 或 undefined,则使用默认值 anonymous。

Nullish Coalescing 运算符和 || 运算符的区别

Nullish Coalescing 运算符和 || 运算符看上去很相似,但它们之间有一些重要的区别。

  • Nullish Coalescing 运算符仅在变量值为 null 或 undefined 的情况下返回默认值;|| 运算符会将变量值为 false、0、''、null 或 undefined 都视为不存在。
  • Nullish Coalescing 运算符是一种更安全的选择,因为它只有在需要使用 null 或 undefined 时才返回默认值。

下面是一个使用 || 运算符出现错误的示例代码:

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

在上述示例代码中,因为 age 的值为 0,所以会使用默认值 unknown。

下面是一个更糟糕的示例代码:

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

在上述示例代码中,因为 name 的值为 null,所以会使用默认值 anonymous。

结论

Nullish Coalescing 运算符是 JavaScript 中一种更安全的选择,它仅在需要使用 null 或 undefined 时才返回默认值。

尽可能使用 Nullish Coalescing 运算符来确保你的代码在处理 null 或 undefined 值时更加健壮。

参考资料

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/670cc6ac5f551281025b9fa4