前言
在 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