在 ES11 中,增加了 Nullish 合并运算符 ??
,可以用于处理 null
或者 undefined
值的判断。在这篇文章中,我们将深入探索 Nullish 合并运算符并学习如何在代码中正确使用它。
Nullish 合并运算符是什么?
在学习 Nullish 合并运算符之前,先来了解一下什么是合并运算符。合并运算符是一种用于将两个值合并为一个值的运算符,常见的合并运算符有 +
、-
、*
和 /
。而 Nullish 合并运算符 ??
是 ES11 中的一种新运算符,用于处理 null
或者 undefined
值的判断。它的语法如下所示:
a ?? b
上述语法表示,如果 a
的值为 null
或者 undefined
,则返回 b
的值,否则返回 a
的值。
Nullish 合并运算符如何处理 falsy 值?
在 JavaScript 中,除了 null
和 undefined
,还有一些其他的被视作假值(falsy)的值,包括 false
、0
、''
、NaN
和 null
。在使用 Nullish 合并运算符处理这些值时,需要注意以下几点:
- 如果
a
的值为false
、0
、''
或者NaN
,则不是null
或者undefined
,所以 Nullish 合并运算符将会返回a
的值。 - 如果
a
的值为null
或者undefined
,则 Nullish 合并运算符将会返回b
的值。 - 如果
a
的值为其他非假值,Nullish 合并运算符将会返回a
的值。
可以通过以下示例代码来了解 Nullish 合并运算符如何处理 falsy 值:
-- -------------------- ---- ------- ----- - - ---------- ----- - - -- ----- - - --- ----- - - ---- ------------- -- ----- -- ------ ------------- -- ----- -- ---- ------------- -- ----- -- ----- ------------- -- ----- -- ------
Nullish 合并运算符如何处理 undefined 值?
除了 falsy 值,Nullish 合并运算符还能处理 undefined
值。在 JavaScript 中,undefined
是未定义的值,通常表示变量已声明但没有赋值。同样可以通过以下示例代码来了解 Nullish 合并运算符如何处理 undefined
值:
let a; let b = null; console.log(a ?? 123); // 输出:123 console.log(b ?? 123); // 输出:null
上述代码中,变量 a
没有赋值,而变量 b
的值为 null
。在使用 Nullish 合并运算符时,a
的值为 undefined
,所以返回 123
。而变量 b
的值为 null
,所以返回 null
。
总结
在本文中,我们深入探索了 Nullish 合并运算符 ??
能够处理 null
和 undefined
值的原理,并通过示例代码演示了 Nullish 合并运算符如何处理 falsy 和 undefined 值。在实际开发中,正确使用 Nullish 合并运算符可以简化代码逻辑,避免出现一些不必要的判断语句,提高代码的可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6519122995b1f8cacd14e83b