Day08 運算子的優先性
今天繼續來看運算子,昨天提到:運算子可以想成是一個函式,這個函式會將前後兩個參數,傳入對應的JS內建函式中,進行運算並回傳。
那是什麼決定運算子的執行順序呢?
這就看運算子的兩個特性,優先性與相依性來決定。
優先性
表示哪一個運算子被優先運算,當同一行程式有不只一個運算子時,具高優先性的運算子會先計算,然後依序算到排序等級低的運算子。
原來運算子也有分社會階級
相依性
表示運算子被計算的順序,若是左到右計算的運算子就稱為左相依性,右到左則稱為右相依性。
若運算子的優先性都相同,那就是依據相依性來判斷順序,決定是左到右還是右到左運算。
來看看以下程式碼:
var a = 3 + 4 * 5;
console.log(a)
現在有+和* 兩個運算子透過=賦值給a
JavaScript會先執行哪一個呢?
在JavaScript中,*運算子優先性比+還高(先乘除後加減),所以會等於23,輸出結果看看:
一般常見的運算子如+-*/(加減乘除)與物件的.運算子都是左相依性的。
那有沒有右相依性的運算子呢?
有的!
例如我們