&&(邏輯與)
var c=a()&&b();
- 如果執(zhí)行
a()
后返回true
,則執(zhí)行b()
并返回b
的值胖笛; - 如果執(zhí)行
a()
后返回false
苍柏,則整個表達式返回a()
的值,b()
不執(zhí)行;
||(邏輯或)
var c=a()||b();
- 如果執(zhí)行
a()
后返回true
撩穿,則整個表達式返回a()
的值磷支,b()
不執(zhí)行; - 如果執(zhí)行
a()
后返回false
食寡,則執(zhí)行b()
并返回b()
的值雾狈;
&& 優(yōu)先級高于 ||
alert((1 && 3 || 0) && 4); //結果4 ①
alert(1 && 3 || 0 && 4); //結果3 ②
alert(0 && 3 || 1 && 4); //結果4 ③
分析:
- 語句①:先執(zhí)行
1 && 3
返回3
,再執(zhí)行3 || 0
返回3
抵皱,最后執(zhí)行結果比較3 && 4
返回4
- 語句②:先執(zhí)行
1 && 3
返回3
善榛,再執(zhí)行0 && 4
返回0
,最后執(zhí)行結果比較3 || 0
返回3
- 語句③:先執(zhí)行
0 && 3
返回0
呻畸,再執(zhí)行1 && 4
返回4
移盆,最后執(zhí)行結果比較0 || 4
返回4
注意:在
js
邏輯運算中,0
伤为、''
咒循、null
、false
绞愚、undefined
叙甸、NaN
都會判為false
,其他都為true