逻辑或运算符(||)与空值合并运算符(??)的对比
||
(逻辑或运算符):用于设置默认值,在遇到falsy
值(false
、0
、''
、null
、undefined
和NaN
)时返回默认值。??
(空值合并运算符):用于设置默认值,在遇到null
或undefined
时返回默认值。
在 JavaScript 中,||
(逻辑或运算符)和 ??
(空值合并运算符)都是用于设置默认值的运算符,但它们的行为却有所不同。这篇文章将对这两个运算符进行比较,帮助你理解何时使用它们。
1. 基本概念
逻辑或运算符 (||)
逻辑或运算符返回第一个真值(truthy)或最后一个值。它会将所有falsy
值(如false
、0
、''
、null
、undefined
和NaN
)视为需要替换的情况。
1 | let value = null; |
空值合并运算符 (??)
空值合并运算符仅在操作数为null
或undefined
时返回右侧的值。它不会将其他falsy
值视为需要替换的情况。
1 | let value = 0; |
2. 具体示例
让我们通过具体示例来比较这两个运算符的行为:
1 | let value1 = null; |
从上面的例子可以看到,||
运算符会在遇到0
或''
时返回默认值,而??
运算符则会保留这些值。
3. 何时使用
**使用
||
**:当你希望在所有
falsy
值(包括0
、''
等)被视为需要替换的情况。**使用
??
**:当你只想在值为
null
或undefined
的情况下提供默认值,并希望保留其他falsy
值。
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Comments
GitalkDisqus