JavaScript中的逻辑运算符包括三种:&&(与),||(或),!(非)。
一般情况下这三种运算符的返回结果均是布尔值true或者false。但是&&和||有例外。
1.逻辑非(!)
其结果一定是一个布尔值。一般使用方式为双非返回一个数值对应的布尔值。
其运算规则如下: !运算数
运算数 | 结果 |
---|---|
布尔值 true | false |
布尔值 false | true |
对象 | false |
空字符串"" | true |
非空字符串 | false |
数字0 | true |
除0以外任何数字 | false |
null | true |
NaN | true |
undefined | true |
2.逻辑与(&&)
其结果不一定是一个布尔值。
其运算规则如下: 运算数1 && 运算数2
运算数1 | 运算数2 | 结果 |
---|---|---|
布尔值 true | 运算数2 | |
布尔值 false | false | |
可以转换成布尔值true | 运算数2 | |
可以转换成布尔值false | 运算数1 |
3.逻辑或(||)
其结果不一定是一个布尔值。
其运算规则如下: 运算数1 || 运算数2
运算数1 | 运算数2 | 结果 |
---|---|---|
布尔值 true | true | |
布尔值false | 运算数2 | |
可以转换成布尔值 true | 运算数1 | |
可以转换成布尔值false | 运算数2 |
注:可以转换成布尔值为false的只有null,undefined,NaN,数字0,空字符串"",其余的非布尔值均转换成true