&&与运算,有假就返回第一个的假值,全真就返回最后一个真值
||或运算,有真就返回第一个的真值,全假就返回最后一个假值
&& 的优先级高于 ||
与运算 &&
&&在运算时找falsy值,只要找到假值,那么输出的值为找到的第一个假值;没找到就输出最后面那个运算结果1234561 && 0 //01 && 0 && 2 && 3 //0 与运算看到0后就不执行后面的运算了1 && null && 3 //null1 && 0 && console.log(3) //0 1 && 2 && 3 //3
或运算 ||
||
在运算时找truy值,只要找到第一个真值,那么输出的值为找到的第一个真值。如果没找到真值,那么输出的值为最后面那个运算结果12340 || null || 1 //10 || null || 1 || 2 //1null || undefined || 0 //0
因此,var a = b || {}
表示,如果b已经声明了,那么a = b
,否则a = {}
&& 的优先级高于 ||
&& 的优先级高于 ||
,先运算&&,再运算||
12341 || 'a' && 2 //1先进行&&运算,结果为2,在运行1 || 2,最终结果为1(1 || 'a') && 2 //2