標籤:console var 解析 als 優先 邏輯 優先順序 str false
第一、&& (邏輯與)運算,看一個簡單的例子:
var a = 1 && 2 && 3;
var b = 0 && 1 && 2;
var c = 1 && 0 && 2;
console.log(a);//值為3
console.log(b);//值為0
console.log(c);//值為0
啟動並執行結果是 :3,0,0。
解析:
“&&” 運算遇到false就返回;
變數a的計算:因為1 && 2,1為真,返回2;2&&3, 2為真,返回3 。
變數b的計算:因為0 && 1,0為假,返回0,不再往下計算。
第二、|| (邏輯或)運算,看一個簡單的例子:
var d = 0 || 1 || 2;
var e = 1 || 0 || 2;
var f = 1 || 2 || 0;
console.log(d);//值為1
console.log(e);//值為1
console.log(f);//值為1
解析:
“||”運算遇到true就返回;
變數d的計算:因為0 || 1,0為假,返回1;1 || 2, 1為真,返回1 。
變數e的計算:因為1 || 0,1為真,返回1,不再往下計算。
三、&& (邏輯與) 和||(邏輯或)混合使用:
var g = 1 && 2 || 3;
var h = 1 || 2 && 3;
var i = 0 || 2 && 3;
console.log(g);//值為2
console.log(h);//值為1
console.log(h);//值為3
解析:
&& (邏輯與) 優先順序高於||(邏輯或);
變數g的計算:因為1 && 2,1為真,返回2;2 || 3, 2為真,返回2 。
變數e的計算:等式看成 1 || (一個值),1為真,最終直接返回1,不需要計算後邊的等式的值。
變數i的計算:因為2 && 3,2為真,返回3;0 || 3,0為假,返回3。
[轉] JS運算子 &&和|| 及其優先順序