ES6 中的空值合并操作符

阅读时长 3 分钟读完

在 JavaScript 开发中,处理空值(null 或者 undefined)是很常见的操作。在以往的开发中,我们通常使用条件语句或者三元运算符来处理空值,但是这种方式有时候会产生很多重复代码,也不够简洁明了。

ES6 中新增了空值合并操作符(Nullish Coalescing Operator),可以更加优雅地处理空值的情况,提高代码的可读性和可维护性。

空值合并操作符的作用

空值合并操作符(??)在处理空值时,可以将空值转化为默认值。当左侧的操作数为 null 或 undefined 时,才会返回右侧的默认值。而对于非空值的情况,空值合并操作符会返回左侧的操作数。

空值合并操作符的语法如下:

空值合并操作符与 || 运算符的差异

在介绍空值合并操作符之前,先来看一下 || 运算符(逻辑或)。

在 JavaScript 中,|| 运算符常常用来给变量一个默认值:

如果变量 name 的值为 falsy 值(null、undefined、0、''、false 或 NaN),那么 || 运算符就会返回右侧的默认值,也就是 'anonymous'。

然而,如果变量 name 的值为 '',或者其他 falsy 值,那么 || 运算符同样会返回右侧的默认值,也就是 'anonymous'。这显然和我们的期望不符。

在这种情况下,我们可以使用空值合并操作符来解决问题:

当变量 name 的值为 '' 时,空值合并操作符会优先选择左侧的操作数,也就是空字符串。这样,就可以正确地处理空字符串的情况。

综上所述,空值合并操作符更加严格地检查 null 或 undefined,而不是将所有 falsy 值都视为未定义或空。

空值合并操作符的示例

下面是一些使用空值合并操作符的示例:

  1. 使用空值合并操作符给变量一个默认值

在这个示例中,如果变量 name 或 age 的值为 null 或 undefined,那么空值合并操作符就会返回默认值。

  1. 使用空值合并操作符处理函数参数
-- -------------------- ---- -------
-------- ----------- -------- -
  ---- - ---- -- ------------
  ------- - ------- -- --------
  ------------------------ -----------
-

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

在这个示例中,如果函数的参数值为 null 或 undefined,那么空值合并操作符就会返回默认值,从而避免了繁琐的条件语句。

总结

空值合并操作符是 ES6 中的一个很实用的特性,它可以更加优雅地处理空值的情形,提高了代码的可读性和可维护性。在实际开发中,我们可以多加运用空值合并操作符,以减少冗余代码的产生,提高开发效率。

参考文献

  • You Don't Know JS Yet: ES6 & Beyond (Kyle Simpson)

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

纠错
反馈