寫了這麼多js,才發現js的語法既是屬於c語系的,又與一般c語系的程式語言某些地方有很大區別,其中&&和||就是其中一例。
c語系的&&和||有乙個特點,無論你把表示式寫的天花亂墜,都會返回乙個布林值。
1,&&
兩邊條件都為true時,結果才為true;
如果有乙個為false,結果就為false;
當第乙個條件為false時,就不再判斷後面的條件;
注意:當數值參與邏輯與運算時,結果為true,那麼會返回的會是第二個為真的值;如果結果為false,返回的會是第乙個為假的值。
2,||
只要有乙個條件為true時,結果就為true;
當兩個條件都為false時,結果才為false;
當乙個條件為true時,後面的條件不再判斷;
注意:當數值參與邏輯或運算時,結果為true,會返回第乙個為真的值;如果結果為false,會返回第二個為假的值;
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 letb, 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]
深入理解JS中 和
c語系的 和 有乙個特點,無論你把表示式寫的天花亂墜,都會返回乙個布林值。1,兩邊條件都為true時,結果才為true 如果有乙個為false,結果就為false 當第乙個條件為false時,就不再判斷後面的條件 注意 當數值參與邏輯與運算時,結果為true,那麼會返回的會是第二個為真的值 如果結果...
深入理解JS中 和
寫了這麼多js,才發現js的語法既是屬於c語系的,又與一般c語系的程式語言某些地方有很大區別,其中 和 就是其中一例。c語系中的 和 c語系的 和 有乙個特點,無論你把表示式寫的天花亂墜,都會返回乙個布林值。1,兩邊條件都為true時,結果才為true 如果有乙個為false,結果就為false 當...
js深入理解 一
1if a b 兩者等價 a b alert hello word 2.給eval取別名var a 111 var b eval var c b a alert c 輸出 111 3.刪除元素 不能刪除 var語句宣告的變數 var o delete o.x alert o.x 輸出 undefin...