a && b
var a = 4 && 5;
console.log(a);//5
因为左边的布尔值转换为true,那么就返回右边的值。
var b = 0 && 6;
console.log(b);//0
如果左边的布尔值转换为false,那么不执行右边的,直接输出左边的值。
a || b
var a = 6 || 9;
console.log(a);//6
左边的布尔值转换为true时,不执行右边,直接输出左边的值。
var a = false || 9;
console.log(a);//9
如果左边的布尔值转换为false时,直接输出右边的值,不考虑真假。
总结:
短路运算比较的是左右两边的布尔值,输出的是自己本身的值
在a&&b时,把最可能是false 的判断写在前,这样就不用判断后面的代码
在a | | b时,把最可能是true的判断写在前,也不需要判断后面的代码