逻辑中断(短路运算)的原理:当有多个表达式(值)时,左边表达式的值可以确定时,就不再继续运算右边表达式的值。
var num = 0;
document.write(123 || num++); ※逻辑中断,返回值123,之后的代码不再继续运行
document.write(num); num的值仍为0
逻辑与的运算规则(&&)
1.从左到右运行代码,找假值(布尔值为false)
0
、" " (空字符串)
、' '(空字符串)
、null(空值)
、undefined(未定义)
、NaN(非数值)
2.找到假值以后,代码便短路了,后面的代码不再执行,会把找到的假值返回出去
3.如果都是真值,则返回最后一个真值
console.log(true && 0 && false) //0(第一个假
console.log(true && false && 0) //false(第一个假
console.log('abc' && 'def' && 'gh')//gh(最后有一个真
逻辑或的运算规则(||)
和逻辑与完全相反
1.从左到右运行代码,找真值(布尔值为ture)
不是 0
、" " (空字符串)
、' '(空字符串)
、null(空值)
、undefined(未定义)
、NaN(非数值)
2.找到真值以后,代码便短路了,后面的代码不再执行,会把找到的真值返回出去
3.如果都是假值,则返回最后一个假值
逻辑中断常可以替换一对一if判断语句
例:
if(a===b){
c=d
}
可以写成:a===b&&c=d