var c=a()&&b();
複製代碼
a()
後返回true
,則執行b()
並返回b
的值;a()
後返回false
,則整個表達式返回a()
的值,b()
不執行;var c=a()||b();
複製代碼
a()
後返回true
,則整個表達式返回a()
的值,b()
不執行;a()
後返回false
,則執行b()
並返回b()
的值;alert((1 && 3 || 0) && 4); //結果4 ①
alert(1 && 3 || 0 && 4); //結果3 ②
alert(0 && 3 || 1 && 4); //結果4 ③
複製代碼
分析:bash
1 && 3
返回3
,再執行3 || 0
返回 3
,最後執行結果比較3 && 4
返回 4
1 && 3
返回3
,再執行0 && 4
返回0
,最後執行結果比較 3 || 0
返回 3
0 && 3
返回0
,再執行1 && 4
返回4
,最後執行結果比較 0 || 4
返回 4
注意:在
js
邏輯運算中,0
、''
、null
、false
、undefined
、NaN
都會判爲false
,其餘都爲true
spa