请问 || 和 ?? 区别
时间: 2023-12-01 21:39:07 浏览: 143
Differences
`||` 和 `??` 都是 JavaScript 中的逻辑运算符,但是它们的作用略有不同。
`||` 运算符表示逻辑或,它的作用是在两个操作数中,只要有一个操作数为真,就返回该操作数的值,否则返回另一个操作数的值。例如:
```javascript
const a = 0 || 1; // a 的值为 1
const b = '' || 'hello'; // b 的值为 'hello'
const c = null || undefined; // c 的值为 undefined
```
`??` 运算符表示空值合并运算符,它的作用是在两个操作数中,只要第一个操作数的值不是 `null` 或 `undefined`,就返回第一个操作数的值,否则返回第二个操作数的值。例如:
```javascript
const a = null ?? 'hello'; // a 的值为 'hello'
const b = undefined ?? 'world'; // b 的值为 'world'
const c = 0 ?? 1; // c 的值为 0
```
因此,`||` 运算符和 `??` 运算符的区别在于,当第一个操作数的值为假值(如 `false`、`0`、`''`、`null`、`undefined`)时,`||` 运算符会返回第二个操作数的值,而 `??` 运算符会返回第一个操作数的值。
阅读全文