運算子的優先性與相依性

在一般的運算式中,通常不會只有一個運算子,所以當出現多個運算子時,就需要透過優先性 (Precedence) 和 相依性 (Associativity) 這兩個原則來規範運算,而這兩個原則並沒有名義上的複雜,國小數學中的先乘除後加減即是基礎規範的體現

優先性 Precedence

優先性即是當出現不同運算子時,函式執行的優先順序,如乘號 * 優先於加號+

1
var a = 3 + 4 * 5;   // 23

相依性 Associativity

相依性即運算函式執行的方向為左到右或是右到左,如下等號 = 為右到左

1
2
3
4
5
6
7
var a = 2, b = 3, c = 4;

a = b = c;

console.log(a); // 4
console.log(b); // 4
console.log(c); // 4

資料參考

MDN Operator Precedence & Associativity