a() && b() :如果執(zhí)行a()后返回true梆暖,則執(zhí)行b()并返回b的值耳峦;如果執(zhí)行a()后返回false霞玄,則整個(gè)表達(dá)式返回a()的值响蕴,b()不執(zhí)行谆焊;
a() || b() :如果執(zhí)行a()后返回true,則整個(gè)表達(dá)式返回a()的值浦夷,b()不執(zhí)行辖试;如果執(zhí)行a()后返回false,則執(zhí)行b()并返回b()的值劈狐;
&& 優(yōu)先級(jí)高于 ||
如下代碼:
alert((1 && 3 || 0) && 4); //結(jié)果4 ①
alert(1 && 3 || 0 && 4); //結(jié)果3 ②
alert(0 && 3 || 1 && 4); //結(jié)果4 ③
分析:
語(yǔ)句①:1&&3 返回3 => 3 || 0 返回 3 => 3&&4 返回 4
語(yǔ)句②:先執(zhí)行1&&3 返回3罐孝,在執(zhí)行0&&4返回0,最后執(zhí)行結(jié)果比較 3||0 返回 3
語(yǔ)句③:先執(zhí)行0&&3 返回0肥缔,在執(zhí)行1&&4返回4莲兢,最后執(zhí)行結(jié)果比較 0||4 返回 4
注:非0的整數(shù)都為true,undefined续膳、null和空字符串”" 為false改艇。