引言
在前端开发中,我们经常需要判断一个值是否为空或者是 undefined,在过去的操作中,我们通常使用 ||
运算符来辅助这个操作,然而, ||
运算符并不能区分 false 和 null。在 ECMAScript 2020(ES11)中,出现了一个新的运算符 ??
(nullish 合并运算符)来解决这个问题。本文将会介绍为什么要使用 nullish 合并运算符,以及它的用法和一些示例。
为什么需要 nullish 合并运算符?
在 JavaScript 中,有一些值被认为是 false,包括 false
,null
,0
,""
,undefined
和 NaN
。在过去,我们如果需要对一个值进行判断并设置一个默认值,我们通常会使用 ||
运算符。例如:
----- - - - -- -- --------------- -- -- ---- - ---- -----
但是,当我们使用 ||
运算符设置默认值的时候,我们并不能准确区分值为 false 和 null 的情况。例如:
----- - - ---- -- ---------- --------------- -- -- ---------- ---- ---- -----
这种情况下,我们并不能准确判断出 null
的值。因此,为了解决这个问题,ES11 中出现了 nullish 合并运算符 ??
。
nullish 合并运算符的用法
nullish 合并运算符的语法为 a ?? b
,其作用是如果 a
的值是 null
或 undefined
,则返回 b
。否则,返回 a
的值。例如:
----- - - ---- -- ---------- --------------- -- -- --------- ------- ----------- ---- - ----- ---
nullish 合并运算符可以与模板字符串一起使用。例如:
----- ---- - ---------- ----- -------- - ------- ------ -- ----------- ---------------------- -- -- ------- ---------- ---- --- ---------
nullish 合并运算符也可以与函数的默认值一起使用。例如:
-------- ---------- - -------- - ------------------- ----------- - -------- -- -- ------- ------------- ------------ -- -- ------- --------- ---- ----------------- -- -- ------- ------------- ------------- -- -- ------- ------- ---------- -- -- ------- --
总结
nullish 合并运算符可以帮助我们准确地区分 false 和 null 的情况,并且可以减少使用 ||
运算符的代码量。在实际使用中,我们可以将 nullish 合并运算符与模板字符串、函数默认值等方法相结合来提高代码的简洁性和可读性。
参考
- MDN Web Docs: Nullish coalescing operator (??)
- ECMAScript® 2021 Language Specification: 14.3.11 Nullish Coalescing Operator (??)
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/653634f47d4982a6ebe2363f