深入理解JS中&&和||


  寫了這么多JS,才發現JS的語法既是屬於C語系的,又與一般C語系的編程語言某些地方有很大區別,其中&&和||就是其中一例。

C語系中的&&和||

  C語系的&&和||有一個特點,無論你把表達式寫的天花亂墜,都會返回一個布爾值。

1,&&

  兩邊條件都為true時,結果才為true;

  如果有一個為false,結果就為false;

  當第一個條件為false時,就不再判斷后面的條件;

  注意:當數值參與邏輯與運算時,結果為true,那么會返回的會是第二個為真的值;如果結果為false,返回的會是第一個為假的值。

2,||

  只要有一個條件為true時,結果就為true;

  當兩個條件都為false時,結果才為false;

  當一個條件為true時,后面的條件不再判斷;

  注意:當數值參與邏輯或運算時,結果為true,會返回第一個為真的值;如果結果為false,會返回第二個為假的值;

JS中的&&和||

1,JS中的&&和||,當出現在條件判斷語句中時,例如if,會遵守C語系規則。

2,JS中的&&和||,當初現在賦值語句中時,例如變量賦值、return結果等,會遵循以下規則:

  表達式a && 表達式b :  計算表達式a(也可以是函數)的運算結果,
                      如果為 True, 執行表達式b(或函數),並返回b的結果;
                      如果為 False,返回a的結果;

  表達式a || 表達式b :   計算表達式a(也可以是函數)的運算結果,
                      如果為 Fasle, 執行表達式b(或函數),並返回b的結果;
                      如果為 True,返回a的結果;

例1:

1 let b, c, d; 2 b = true || 0;//b=true;
3 c = false || 0;//c=0;
4 d = 1 || 0;//d=1;

例2:

1 //將數組中布爾值為false的成員轉為0
2 Array.from([1, , 2, , 3], (n) => n || 0) 3 // [1, 0, 2, 0, 3]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM