js ?? 和 || 的区别
时间: 2023-08-18 20:08:34 浏览: 82
在 JavaScript 中,"||" 是逻辑或操作符,而 "?? " 是空值合并操作符。
"||" 表示逻辑或操作符,在两个表达式中,只要有一个表达式的值为真(truthy),结果就会返回该表达式的值。如果两个表达式都是假(falsy),则返回最后一个表达式的值。例如:
```javascript
const result = a || b;
```
在上述代码中,如果变量 a 的值为真,则结果将是 a 的值,并且 b 的值不会被考虑。如果 a 的值为假,则结果将是 b 的值。
"?? " 是空值合并操作符,用于检查一个表达式是否为 null 或 undefined,如果是,则返回另一个给定的默认值。例如:
```javascript
const result = a ?? b;
```
在上述代码中,如果变量 a 的值为 null 或 undefined,则结果将是 b 的值。否则,结果将是 a 的值。
简而言之,"||" 是逻辑或操作符,用于判断真假值,而 "?? " 是空值合并操作符,用于提供默认值。
相关问题
请问 || 和 ?? 区别
`||` 和 `??` 都是 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`)时,`||` 运算符会返回第二个操作数的值,而 `??` 运算符会返回第一个操作数的值。
js中,a?a:b和a||b有什么区别
在 JavaScript 中,a ? a : b 和 a || b 两者都可以用来实现简单的条件判断和赋值操作,但是它们之间有一些区别。
a ? a : b 表示如果 a 为真,则返回 a,否则返回 b。这种写法可以用于简单的条件判断和赋值操作。
a || b 表示如果 a 为真,则返回 a,否则返回 b。这种写法也可以用于简单的条件判断和赋值操作,但是它还可以用于设置默认值。例如,如果变量 a 为假,则使用变量 b 的值作为默认值。
需要注意的是,当 a 的值为 0、null、undefined、false 或空字符串时,a || b 表达式会返回 b 的值。而 a ? a : b 表达式会返回 a 的值。因此,在使用这两种写法时需要注意边界情况。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)