逻辑或运算符|| 、 空值合并运算符??和逻辑与操作符 &&
区别
||返回第一个真值。??返回第一个已定义的值。
JavaScript里的假值只有false、null、undefined、空字符、0和NaN。
| 运算符 | 优先级 | 运算符类型 | 顺序 |
|---|---|---|---|
| … && … | 5 | 逻辑与 (&&) | 从左到右 |
| …|| … | 4 | 逻辑或 || | 从左到右 |
| … ?? … | 4 | 空值合并 (??) | 从左到右 |
空值合并运算符 ??
空值合并运算符??:value1 ?? value2只有当value1为null或者 undefined 时取value2,否则取value1
说明
- 短路运算,当左表达式为 null 或 undefined 时,不会对右表达式进行求值。
- 不能与
&&和||运算符组合使用,除非使用括号明确指定了优先级 - 常用场景:为常量提供默认值,保证常量不为null或undefined
原理
const result = value !== undefined && value !== null ? value : defaultValue;
逻辑或运算符 ||
逻辑或运算符||:如果第一个操作数为真,则返回第一个操作数的值;否则返回第二个操作数的值。
说明
||是一个布尔逻辑运算符,左侧的操作数会被强制转换成布尔值。- 短路运算,当左表达式为真时,不会对右表达式进行求值
JavaScript 在需要用到布尔类型值的上下文中使用强制类型转换(Type Conversion )将值转换为布尔值,例如条件语句、||、&&等。
能够转化为 true 的值叫做真值,能够转化为 false 的值叫做假值。
JS中的假值
- false
- null
- undefined
- 0
- NaN
- “ ”
//{}为真值
if({})console.log('xxx') //xxx
//[]为真值
if([])console.log('xxx') //xxx
逻辑与操作符 &&
逻辑与操作符 &&:从左到右对操作数求值,遇到第一个假值操作数时立即返回;如果所有的操作数都是真值,则返回最后一个操作数的值。
说明
- 短路运算,当每个操作数被转换为布尔值时,如果发现一个转换的结果是 false,那么逻辑与运算符就会停止,并返回该假操作数的原始
本文介绍了JavaScript中的逻辑运算符,包括逻辑或(||)、逻辑与(&&)&空值合并(??)运算符的工作原理和用法。||运算符返回第一个真值,??运算符在左值为null或undefined时返回右值,而&&运算符在遇到第一个假值时返回该值。这些运算符在处理条件判断和默认值设定时非常有用。
743

被折叠的 条评论
为什么被折叠?



