JavaScript 逻辑运算符
逻辑运算符通常用于布尔型(逻辑)值。这种情况下,它们返回一个布尔值。然而,&& 和 || 运算符会返回一个指定操作数的值,因此,这些运算符也用于非布尔值。这时,它们也就会返回一个非布尔型值。—— MDN
JavaScript 中的逻辑运算有三种:
1. 与
语法:
表达式 && 表达式
如果表达式的结果成立则返回表达式的结果,否则返回表达式的结果
与可以理解为且、并且、同时。与在 JavaScript 使用 @H_404_12@&& 表示。
true && true; // true
true && false; // false
false && true; // false
false && false; // false
如:判断成绩是否处于 80 到 100 之间。
80 到 100 之间换一种表述方式就是,成绩大于等于 80 并且成绩小于等于100,这种表述形式更像程序语言,所以条件就是@H_404_12@分数 >= 80 并且 分数 <= 100。
var score= ;
if (score >= && score <= ) {
console.log(score + '分在80到100之间');
} else {
console.log(score + '分不在80到100之间');
}
2. 或
语法:
表达式 || 表达式
如果表达式结果成立,则返回表达式 的结果,否则返回表达式 的结果
或就是或者。在 JavaScript 中使用 @H_404_12@|| 表示。
或操作符在当有表达式的结果为 true 或者可以隐式转换为 true 的时候,就返回这个表达式的结果,如果没有则返回右侧表达式的结果。
true || true; // true
true || false; // true
false || true; // true
false || false; // false
如:判断一个数能被 3 整除或者能被 5 整除。
能被 3 或者 5 整除的数,表述成类似于计算机语言的样子就是@H_404_12@某个数 % 3 === 0 或者 某个数 % 5 === 0。
var number = ;
if (number % === || number % === ) {
console.log(number + '可以被3或5整除');
} else {
console.log(number + '不可以被3或5整除');
}
// 输出:15可以被3或5整除
3. 非
语法:
!表达式
非就是取反。表达式结果如果是布尔值,则会直接取反,结果如果不是布尔值,则会转换成布尔值再取反。
!true; // false
!false; // true
!; // true
!''; // true
!; // false
不仅在日常编码中很常用到非,在许多代码压缩工作中也会用到非,如将 true 压缩成 !0,false 压缩成 !1,从 4 个字符和 5 个字符压缩到 2 个字符。
4. 双重非
双重非就是使用两个非,通常用于将一种数据类型转换成布尔值。
!!; // true
5. 短路逻辑
短路逻辑是一种逻辑运算符的求值策略,还可以称作短路求值、最小化求值。
JavaScript 在进行与或计算的时候就会用到短路逻辑。
如:判断一个数是 2 的倍数同时又是 5 的倍数。
var number = ;
number % === && number % === ;
这就是短路逻辑,只要得出了结果,就不会再继续计算。