ES2020 的 Nullish coalescing 操作符解决了 undefined 和 null 的问题

阅读时长 3 分钟读完

ES2020 的 Nullish Coalescing 操作符解决了 Undefined 和 Null 的问题

在开发的过程中,许多前端工程师经常需要处理 Undefined 或 Null 的情况。举个例子,当我们需要一个变量来保存某个值,但是它还没有被定义或者它的值为 Null,这时候就需要对它进行判断。ES2020 的 Nullish Coalescing 操作符就是为了解决这个问题的。

在介绍 Nullish Coalescing 操作符之前,我们先来看一个简单的例子:

这里我们定义了一个变量 a,但是没有为它赋值。接着我们定义了一个变量 b,它的值是 a 或者 'hello'。因为 a 的值为 Undefined,所以 b 最后的值为 'hello'。这个时候我们可以发现,当 a 的值是 Undefined 或者 Null 的时候,我们就需要考虑到这个问题,也就是说上述代码存在缺陷。

接下来使用 Nullish Coalescing 操作符来解决上述问题:

通过代码可以看出,Nullish Coalescing 操作符的语法为 ??。它的作用是对左边的值进行判断,当左边的值为 Null 或者 Undefined 时,返回右边的值。如果左边的值不为 Null 或者 Undefined 时,直接返回左边的值。

再来看一个例子:

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

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

上述代码中,x 的值为 0,不属于 Null 或 Undefined 的情况,所以 a 的值为 0;y 的值为 Null,属于 Null 或 Undefined 的情况,所以 b 的值为 'world';z 的值为 Undefined,也属于 Null 或 Undefined 的情况,所以 c 的值为 'javascript'。

通过上述例子可以看出,Nullish Coalescing 操作符相对于 || 操作符,能够更好的解决 Undefined 或 Null 的问题。

总结:

Nullish Coalescing 操作符是 ES2020 中的新特性,通过它我们可以更好的解决 Undefined 和 Null 的问题。如果在编码中需要判断某些变量是否赋值或者为 Null,最好使用 Nullish Coalescing 操作符,而不是 || 操作符。因为 Nullish Coalescing 操作符只会对 Null 或 Undefined 进行判断,而 || 操作符还会对 0、 ''、false、NaN 等值进行判断,所以当变量值为这些值时,我们需要使用 Nullish Coalescing 操作符来避免一些不必要的错误。

参考代码:

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

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

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

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

纠错
反馈