在 JavaScript 的开发中,我们经常需要处理变量的空值问题。以往我们使用的方法是利用逻辑运算符 || 和条件表达式 ? : 来判断变量是否为空,但这些方法会存在一些意料之外的问题。为了解决这个问题,ES2020 引入了 Nullish Coalescing 操作符 ??。
本文将讲解 Nullish Coalescing 操作符的使用方法以及相关注意事项。
Nullish Coalescing 操作符
Nullish Coalescing 操作符 ?? 可以将一个空值(null 或 undefined)转化为一个默认值。它的语法是:
variable ?? defaultValue
如果 variable 不为 null 或 undefined,则返回 variable;否则会返回 defaultValue。
示例
让我们看下一个例子:
const foo = null; const bar = 'bar'; const result = foo ?? bar; console.log(result); // "bar"
在这个例子中,变量 foo 的值为 null,所以使用 Nullish Coalescing 操作符得到的结果是 bar。
现在让我们来看一个不使用 Nullish Coalescing 操作符的例子,只使用逻辑运算符 ||。
const foo = 0; const bar = 'bar'; const result = foo || bar; console.log(result); // "bar"
在这个例子中,变量 foo 的值为 0。如果我们使用逻辑运算符 ||,那么它会被视为一个“假”值,因此变量 bar 会被赋值。然而,这可能不是我们想要的结果。
注意事项
当使用 Nullish Coalescing 操作符时,需要注意一些细节:
- 只有 null 或 undefined 才会被视为一个空值,其他值(比如 0、false 和 '')都会被视为有效值。
- 与逻辑运算符 || 不同,Nullish Coalescing 操作符仅仅返回变量本身或默认值,而不是将其转化为布尔值。
结论
Nullish Coalescing 操作符是一个很方便的操作符,可以帮助我们轻松处理变量的空值问题。但需要记住,在某些情况下,使用逻辑运算符 || 仍然是更好的选择。
希望这篇文章可以帮助大家更好地理解 Nullish Coalescing 操作符,并在开发实践中使用它。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/671c994f9babaf620fb180fe