逻辑运算中,一般是用布尔值参与逻辑运算。比如:
true && flase == flase;
但如果是 值 或者是 表达式 参与逻辑运算呢?
比如:123 && 456 == ?
这是就是短路运算(逻辑中断)。
原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值。
逻辑与的短路运算
表达式1 && 表达式2
①如果表达式1的值为真,则返回表达式2
②如果表达式1的值为假,则返回表达式1
console.log(123 && 456); //456
console.log(0 && 456); //0
console.log(0 && 1 && 2); //0
逻辑或的短路运算
表达式1 && 表达式2
①如果表达式1的值为真,则返回表达式1
②如果表达式1的值为假,则返回表达式2
案例:
var num = 0;
console.log(123 || num++); //123
console.log(num); //0
//由于上面的代码num++为表达式,因此逻辑中断了,则num++没有运算,因此num此时还是为0