js中的 || 與 && 運算子詳解
阿新 • • 發佈:2021-01-20
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;
|
嘛嘛,當然只是猜測。