&&和||

&&(邏輯與)

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''nullfalseundefinedNaN都會判爲false,其餘都爲truespa

相關文章
相關標籤/搜索