[JS奇怪的世界]No.16 運算子的優先性與相依性
運算子的優先性與相依性
這兩個名詞在 JavaScript 是一個非常重要的東西,而且是非常重要的觀念,如果能瞭解其觀念,對於 debug 上也是有一定幫助的。
運算子的優先性
運算子的優先性的意思是表示哪一個運算子會被優先運算,因為一般來講一個運算子來講不一定會只有一個,而 JavaScript 會優先處理優先性較高的運算子依序到最低。
運算子的相依性
運算子的相依性是什麼?相依性代表的是運算子被計算的順序,通常要馬是從左至右的相依性而這叫做左相依性,不然就是從右至左。
所以當一條運算中有兩個相同的優先性,那麼相依性就會很重要,相依性可以用來判斷要從右至左還是從左至右,課程提供了一個範例。
1 | var a = 3 + 4 * 5; |
答案會是多少?23,我們先思考一下數學規則,先乘除後加減,所以會 JavaScript 也是一樣的道理,所以 JavaScript 會先處理 4 * 5
處理完之後再 + 3
。
那 JavaScript 的優先順序怎麼看? 課程中有附上 MDN 的文件連結可供我們去瞭解運算子的優先順序,而數字越大(Precedence)代表優先度越高。
在這邊課程就有提供一個不錯的範例
1 |
|
答案會是 4,原因是在運算只優先度情況之下,它就會依照相依性來決定執行順序,而等號就是從右至左。