下面的值为false:
false
null
undefined
"" 即空字符串
0
NaN
几乎所有语言中||和&&都遵循“短路”原理,
如&&中第一个表达式为假就不会去处理第二个表达式,而||正好相反。
js也遵循上述原则。
当||时,找到为true的分项就停止处理,并返回该分项的值,否则执行完,并返回最后分项的值。
当&&时,找到为false的分项就停止处理,并返回该分项的值。
var a = "" || null || 3 || 4;//3
alert(a);
var b = 4 && 5 && null && "0";//null
alert(b);
a&& b :如果执行a后返回true,则执行b并返回b的值;如果执行a后返回false,则整个表达式返回a的值,b不执行;
a || b :如果执行a后返回true,则整个表达式返回a的值,b不执行;如果执行a后返回false,则执行b并返回b的值;
&& 优先级高于 ||;