ECMAScript 2020 中的 nullish 合并操作及其实际使用

阅读时长 3 分钟读完

ECMAScript 2020 是 JavaScript 编程语言的最新标准,它引入了一项新的语法特性:nullish 合并操作符(nullish coalescing operator)。本文将详细介绍 nullish 合并操作符及其实际使用场景,并提供示例代码。

什么是 nullish 合并操作符?

nullish 合并操作符 ?? 是一个新的逻辑运算符,用于判断一个值是否是 null 或 undefined。它和传统的 || 运算符不同, || 运算符会将 falsy 值(比如 false、0、"")转为 false,导致一些错误的结果;而 ?? 运算符只有在值为 null 或 undefined 时才返回右侧的默认值。

以下是一个简单的示例,展示了两个运算符的区别:

在上面的代码中,变量 x 被赋了一个 null 值,因此 z1 的值为 y,即 10;而 z2 的值为 null,因为 ?? 运算符判断了 x 的值为 null。

nullish 合并操作符的实际使用

nullish 合并操作符主要被用于设置默认值,因为它能够防止将 falsy 值当作默认值:

上面的 test 函数中,y 和 z 都被使用了 ?? 运算符设置了默认值,x 没有使用,因此输出结果中 y 为 20,z 为 30。

另一个常见的场景是在访问对象属性时使用 nullish 合并操作符:

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

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

在上面的代码中,对象 userProfile 中的属性值可能为 undefined 或 null,使用 ?? 运算符可以很好地处理这种情况,避免了无意义的操作。

总结

nullish 合并操作符 ?? 是 ECMAScript 2020 中的一项新增语法特性,可以用于判断一个值是否为 null 或 undefined,并设置默认值。与传统的 || 运算符不同,nullish 合并操作符避免了将 falsy 值当做默认值的错误。在使用对象属性时,nullish 合并操作符也能很好地帮助我们处理 undefined 和 null 值。这项新特性的引入将大大减少代码的错误和不必要的麻烦。

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

纠错
反馈