JavaScript的逻辑运算符
原文:Logical Operators in JavaScript
JavaScript有3种逻辑运算符:&&、||和!。这三个运算符常用在if语句,本文介绍了逻辑运算符其他的一些神奇的用法。
JavaScript有3种逻辑运算符:
!:逻辑非&&:逻辑与||:逻辑或
逻辑非
逻辑非运算符!可以检查一个值的真/假。简言之,真值的!v === false,以下7个为假值:
false00n: BigInt 0'': 空字符串nullundefinedNaN
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,会返回最靠左的假值。