這邊附上常見平方、加、減、乘、除的優先順位(表格內的數字)以及下面會談到的相依性。
var a = 3 * 3 + 4 * 4 //乘號的優先性比加號高所以優先運算。
let a = 3;
console.log(a **= 2);
// expected output: 9
console.log(a **= 0);
// expected output: 1
let a = 2;
console.log(a *= 3);
// expected output: 6
第一題:
a = b = 3;
解:
步驟一:b = 3;3賦予變數b。
步驟二:b = 3因為是表達式;所以回傳新的值(來自b = 3的結果)。
步驟三:a = (來自b = 3的結果),值賦予變數a。
第二題:
console.log(1 < 2 < 3);//ture
console.log(3 < 2 < 1);//false
解:console.log(1 < 2 < 3)why是ture。
步驟一:console.log(1 < 2):true。
步驟二:console.log(true < 3):此時涉及隱式轉換,boolean值轉Number時;true為1,false為0。
步驟三:console.log(1 < 3):true。
第三題:
var x = 5;
var y = 10;
var z = 25;
x = y
console.log(x, y); //10,10
x = y = z
console.log(x, y, z); //25,25,25
y = x = z
console.log(x, y, z); //25,25,25