随着时间的推移,JavaScript 一直在不断发展和演进。随着 ES11(ECMAScript 2020)的发布,Nullish Coalescing Operator(空值合并运算符)成为了新增的功能之一。本文将会详细介绍这个新特性以及如何在你的 JavaScript 代码中使用它。
什么是 Nullish Coalescing Operator?
Nullish Coalescing Operator 可以看作是一个简化版的三元条件表达式,它用于对一个变量进行空值检测,如果该变量的值是 null 或者 undefined,它将返回一个默认值。这个运算符的语法是 ??
。
这里需要注意的是,这个运算符只会判断变量值是否为 null 或者 undefined,而不会把其他的 falsy 值当做空值(比如 0,'',false 等等)。
下面是一些示例,可以更好地帮助理解 Nullish Coalescing Operator 的功能:
const foo = null ?? 'default value'; // 'default value' const bar = undefined ?? 'default value'; // 'default value' const baz = 0 ?? 'default value'; // 0 const qux = false ?? 'default value'; // false const quux = '' ?? 'default value'; // ''
为什么需要 Nullish Coalescing Operator?
在 JavaScript 代码中,在进行变量值判断时,通常会使用类似于下面的代码:
const foo = someValue || 'default value';
这种方式在许多情况下是有效的,因为 JavaScript 中有许多 falsy 值,其中包括 null 和 undefined。
但是,它也有一个明显的缺点,那就是会将其他的 falsy 值(0,'',false 等等)也当做空值来处理。这在某些场景下可能会产生意想不到的结果。
举个例子,假设我们要获取一个网站用户的年龄,如果这个用户没有填写年龄,我们想要使用一个默认值。按照之前的做法,我们可能会这样写:
const age = userAge || 18;
但是,如果用户的年龄是 0 岁,这个判断就会认为 0 是一个空值,而将默认值设置为 18 岁,这显然是错误的。
这时候,Nullish Coalescing Operator 就可以很好地解决这个问题:
const age = userAge ?? 18;
这样,只有当 userAge 的值为 null 或者 undefined 时才会应用默认值,其他 falsy 值都不会认为是空值。
总结
Nullish Coalescing Operator 是一个很实用的新特性,可以让开发者更轻松地对变量进行空值检测,并且避免了那些难以预料的问题。在你的日常开发中,相信这个运算符也会变得很常用。
本文从介绍快速概括 Nullish Coalescing Operator 的语法、优点与实用性,强烈建议掌握并在适当的场景下使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64d21c3eb5eee0b52597c3ef