ECMAScript 2021(简称 ES12)是 JavaScript 语言的最新版本,于 2021 年 6 月发布。本文将介绍 ES12 中新增的 nullish 合并运算符,它可以使你的代码更加简洁。
nullish 合并运算符
在开始之前,我们需要先理解以下两个概念:
- 空值:值为
null
或undefined
。 - Falsy 值:在布尔上下文中被视为
false
的值。
接着,我们介绍一个经常出现的场景:给变量赋默认值。
const myVar = someVar || defaultValue;
在这里,someVar
的值为 falsy 值时,myVar
会被赋为 defaultValue
。这种写法看起来非常正常,但是存在潜在的问题。
假设 someVar
的值是 0
或 ''
,它们都是 falsy 值。这种情况下,myVar
仍然会被赋为 defaultValue
值,这可能并不是我们期望的结果。
在 ES12 中,我们可以使用 nullish 合并运算符来解决这个问题:
const myVar = someVar ?? defaultValue;
如果 someVar
的值是 null
或 undefined
,那么 myVar
会被赋为 defaultValue
。
示例代码
下面是一些使用 nullish 合并运算符的示例代码:
示例 1
const foo = null; const bar = foo ?? 'default'; console.log(bar); // 'default'
示例 2
const baz = ''; const qux = baz ?? 'default'; console.log(qux); // ''
总结
ES12 中新增的 nullish 合并运算符可以有效地解决给变量赋默认值时的问题。与 || 运算符不同,nullish 合并运算符只在值为 null
或 undefined
时才会生效,可以使开发人员编写更加健壮的代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/652136f495b1f8cacd8b7ad3