一 、逻辑与 &&
两边的值都为true,结果才为 true,如果只要有一侧的值为false,结果就为 false;
console.log(2 > 1 && 1 < 2); // true
console.log(3 > 2 && 1 > 2); //false
1.1 逻辑与 && 短路运算(逻辑中断)
语法:表达式(值)1 && 表达式(值)2
如果有多个表达式 不是布尔值,而是一些值或者表达式时,如果发现左侧的值是假的,就不再继续运算右侧的值;
1.1.1 如果第一个表达式(值) 的值为 真,则返回表达式2的值
console.log(123 && 231); // 231
console.log(1 + 1 && 3 * 2) // 6
1.1.2 如果第一个表达式(值) 的值为 假,则返回表达式1 的值
console.log(0 && 2); // 0
console.log(1 - 1 && 1 * 3); // 0
二 、逻辑或 ||
两边的值都为false,结果才为 false, 如果只要有一侧的值为 true,结果就为 true ;
console.log(2 > 3 || 3 < 2); //false
console.log(4 > 1 || 13 < 8); // true
2.1 逻辑或 || 短路运算(逻辑中断)
语法:表达式(值)1 || 表达式(值)2
如果有多个表达式 不是布尔值,而是一些值或者表达式时,如果发现左侧的值是假的,就返回表达式2的值,如果左侧为真,则返回表达式1的值;
2.1.1 如果第一个表达式的值为真,则返回表达式1的值;
扫描二维码关注公众号,回复:
10376696 查看本文章
console.log(123 || 231); // 123
console.log(1 + 1 || 3 * 2) // 2
2.1.2 如果第一个表达式的值为假,则返回表达式2的值;
console.log(0 || 2); // 2
console.log(1 - 1 || 1 * 3); // 3
三 、逻辑非 !
取反符,用来取一个布尔值相反的值,如 true的相反值就是 false;
console.log(!true); // false
console.log(!false); // true
console.log(!4<2); // true 4<2 本身为false,但是取反值就为 true