JavaScript的逻辑运算符
原文:Logical Operators in JavaScript
JavaScript有3种逻辑运算符:&&
、||
和!
。这三个运算符常用在if
语句,本文介绍了逻辑运算符其他的一些神奇的用法。
JavaScript有3种逻辑运算符:
!
:逻辑非&&
:逻辑与||
:逻辑或
逻辑非
逻辑非运算符!
可以检查一个值的真/假。简言之,真值的!v === false
,以下7个为假值:
false
0
0n
: BigInt 0''
: 空字符串null
undefined
NaN
1 | // 假值的 `!v === true` |
与||
和&&
不同,非运算符总是返回一个Boolean。将一个值v
转换为Boolean的常用方法,是进行两次逻辑非操作:
1 | // `v`转为Boolean |
逻辑或
逻辑或运算符||
操作2个值,只要有一个是真值,就返回true
。
1 | // `a`或`b`为true,则为true。 |
逻辑或运算符常用于if语句,在多个条件中的一个为true时执行if语句块。但逻辑或运算符不一定返回一个Boolean:
- 如果
a
是真值,(a || b) === a
- 如果
a
是假值,(a || b) === b
多个或运算符看起来很简洁:a || b || c || d
返回最靠左的真值。基于此,逻辑或常用于取默认值:
1 | const defaultNumReps = 2; |
逻辑与
逻辑与运算符&&
操作2个值,只要有一个值是假值,就返回false
。
1 | // `a`和`b`都为true,才是true |
逻辑与运算符常用于if语句,在多个条件都满足时才执行if语句块。与逻辑或相似,逻辑与运算符也不一定返回一个Boolean:
- 如果
a
是假值,(a && b) === a
- 如果
a
是真值,(a && b) === b
多个逻辑与运算符的链a && b && c && d
,会返回最靠左的假值。