1. 程式人生 > 實用技巧 >js中的 || 與 && 運算子詳解

js中的 || 與 && 運算子詳解

js中邏輯運算子在開發中可以算是比較常見的運算子了,主要有三種:邏輯與&&、邏輯或||和邏輯非!。

當&&和|| 連線語句時,兩邊的語句會轉化為布林型別(Boolean),然後再進行運算,具體的運算規則

重點:

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

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


轉換規則:

物件為true;
非零數字為true;

零為false;

非空字串為true;
空字串為法false;
其他為false;

例如:
var  a =  obj || " "  ;     //如果 obj 為空,a就賦值為 " " ;
var  a = check() &&  do();    //如果check()返回為真,就執行do(),並將結果賦值給 a;

邏輯或 ||  : var a = 表示式1 || 表示式2

      表示式1    表示式2    a取值
        1          0      表示式1結果值
        1        1      表示式1結果值
        0        1      表示式2結果值
        0        0      表示式2結果值
邏輯與 &&  : var a = 表示式1 && 表示式2

      表示式1    表示式2    a取值

        1          0      表示式2結果值
        1        1      表示式2結果值
        0        1      表示式1結果值
        0        0      表示式1結果值

主要原因是因為短路,邏輯或 || 在前面有一個ture的時候則不看後面直接停止,邏輯與&&同理。
然後計算賦值和我們平時一樣之獲取最新的一次計算結果值。

例如

1 b = (1 + 1, 2 + 2, 3 + 3);//b=6;

嘛嘛,當然只是猜測。

  

  

參考:https://www.jb51.net/article/140789.htm