console.log(3>2>1) 是什麼?JavaScript 優先性與相依性
在四則運算我們知道先乘除、後加減、括號內優先計算,程式語言的運算子個別也有不同的優先性,這我們稱為 運算子優先性
優先性決定順序,相依性則決定執行方向,例如是從左至右還是從右至左執行,從左開始十分直覺,但 JavaScript 也不乏從右邊執行的運算子
var a = (b = 1);
1 會先賦值到 b,b = 1
這段表達式執行完會回傳 1
,再賦值到 a
上,但實務非常不建議連續賦值就是了,因為有滿多雷點
完整的優先性與相依性清單,可以參考 MDN
優先性數字越大代表越優先,在這張表也可以看到的確有「先乘除、後加減、括號內優先計算」
那這題怎麼解呢? 這題就用到了相依性與轉型
console.log(3 > 2 > 1);
依相依性,>
運算子是由左而又,所以 3>2
會先執行,回傳 true
接著就是比對 true > 1
,雖然你不一定完全懂轉型,但怎麼轉型 true
頂多等於 1,並不會大於,所以這題最終會回傳 false