逻辑运算符 || 和 &&

&&与运算,有假就返回第一个的假值,全真就返回最后一个真值
||或运算,有真就返回第一个的真值,全假就返回最后一个假值
&& 的优先级高于 ||

与运算 &&

&&在运算时找falsy值,只要找到假值,那么输出的值为找到的第一个假值;没找到就输出最后面那个运算结果

1
2
3
4
5
6
1 && 0 //0
1 && 0 && 2 && 3 //0 与运算看到0后就不执行后面的运算了
1 && null && 3 //null
1 && 0 && console.log(3) //0
1 && 2 && 3 //3

或运算 ||

||在运算时找truy值,只要找到第一个真值,那么输出的值为找到的第一个真值。如果没找到真值,那么输出的值为最后面那个运算结果

1
2
3
4
0 || null || 1 //1
0 || null || 1 || 2 //1
null || undefined || 0 //0

因此,var a = b || {}表示,如果b已经声明了,那么a = b,否则a = {}

&& 的优先级高于 ||

&& 的优先级高于 ||,先运算&&,再运算||

1
2
3
4
1 || 'a' && 2 //1
先进行&&运算,结果为2,在运行1 || 2,最终结果为1
(1 || 'a') && 2 //2

-------------本文结束感谢您的阅读-------------