逻辑运算符
逻辑运算符用于对布尔值进行运算,其返回值也是布尔值。在实际开发中,逻辑运算符经常用于多个条件的判断。常用的逻辑运算符如表1所示。
表1 逻辑运算符
运算符 | 运算 | 示例 | 结果 |
---|---|---|---|
&& | 与 | a && b | a和b都为true,结果为true,否则为false |
|| | 或 | a || b | a和b中至少有一个为true,则结果为true,否则为false |
! | 非 | !a | 若a为false,结果为true,否则相反 |
接下来我们通过代码演示逻辑运算符的使用。
// 逻辑“与”
var res = 2 > 1 && 3 > 1; // true && true
console.log(res); // 输出结果:true
var res = 2 > 1 && 3 < 1; // true && false
console.log(res); // 输出结果:false
// 逻辑“或”
var res = 2 > 3 || 1 < 2; // false || true
console.log(res); // 输出结果:true
var res = 2 > 3 || 1 > 2; // false || false
console.log(res); // 输出结果:false
// 逻辑“非”(取反)
console.log(!res); // 输出结果:true
逻辑运算符在使用时,是从左到右的顺序进行求值,因此运算时需要注意,可能会出现“短路”的情况,具体如下所示。
(1)使用“&&”连接两个表达式,语法为“表达式1 && 表达式2”。如果表达式1的值为true,则返回表达式2的值,如果表达式1的值为false,则返回false。
(2)使用“||”连接两个表达式,语法为“表达式1 || 表达式2”。如果表达式1的值为true,则返回true,如果表达式1的值为false,则返回表达式2的值。
为了使读者更好地理解,下面我们通过代码进行演示。
// “短路”效果演示
console.log(123 && 456); // 输出结果:456
console.log(0 && 456); // 输出结果:0
console.log(0 && 1 + 2 && 456 - 56789); // 输出结果:0
console.log(123 || 456); // 输出结果:123
console.log(0 || 456); // 输出结果:456
// “与”运算时,表达式1为false,则表达式2不执行
var num = 0;
console.log(123 && num++); // 输出结果:0
console.log(num); // 输出结果:1
console.log(0 && num++); // 输出结果:0
console.log(num); // 输出结果:1
// “或”运算时,表达式1为true,则表达式2不执行
var num = 0;
console.log(123 || num++); // 输出结果:123
console.log(num); // 输出结果:0
console.log(0 || num++); // 输出结果:0
console.log(num); // 输出结果:1