了解 ECMAScript 2017 (ES8) 中的空值合并操作符

阅读时长 4 分钟读完

在 ECMAScript 2017 (ES8) 中,引入了新的空值合并操作符(Nullish Coalescing Operator),用于解决 JavaScript 中常见的空值判断问题,提高代码的可读性和简洁性。

什么是空值合并操作符?

空值合并操作符是一种用于简化空值判断的语法,其作用是返回第一个定义的、非空(null 或 undefined 之外)的值。它使用问号加两个连续的竖杠 ?? 表示,如下示例:

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

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

上面的代码中,空值合并操作符 ?? 将会对 ab 返回 'default value',因为它们的值为 nullundefined。但对 cd 返回空字符串和数字 0,因为它们被认为是非空值。

需要注意的是,空值合并操作符只针对 nullundefined 进行操作,对其它值(如空字符串、数字零等)不产生影响。

与逻辑或操作符的区别

空值合并操作符与逻辑或操作符(||)虽然有些相似,但在处理空值时存在以下区别:

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

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

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

在上面的示例中,逻辑或操作符会将 nullundefined 视为假值,并返回第二个操作数 'default value'。而空值合并操作符仅对 nullundefined 进行操作,并且只有当左侧操作数为真值才会返回。

使用空值合并操作符的场景

空值合并操作符通常在处理默认参数或配置选项等场景下使用。

比如,我们需要为函数的参数设置默认值,可以像这样使用空值合并操作符:

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

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

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

在上面的示例中,当 options 参数为 nullundefined 时,空值合并操作符会将其设置为一个空对象。然后通过使用空值合并操作符来获取 timeoutposition 的默认值。

总结

空值合并操作符是 ECMAScript 2017 (ES8) 中引入的新语法,用于简化空值判断的过程,提高代码的可读性和简洁性。它与逻辑或操作符存在区别,常用于处理默认参数或配置选项等场景。在实际项目开发中,可以根据实际需求来选择使用空值合并操作符或其它空值判断方式,以提高开发效率和代码质量。

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

纠错
反馈