概要
javacriptの演算子には結合性という重要な考え方があるので、
結合性について試してみます。
演算子には結合の方向があり、左から右に演算を結合する場合と、
反対に右から左に結合する場合あります。
また、同じ優先順位の演算子の場合は、実行順を決定する場合に結合性の順で演算がされます。
例えば減算する演算子「-」の場合、値が3つある場合を試してみます。
var test; test = 100 - 20 - 10; console.log(test);
上記の結果は、まず100-20が演算され、その後で80-10が演算されます。
これは演算子の結合性が「左から右に結合している」という仕様に則っている為です。
演算子には結合性の仕様により演算される方向があることに注意が必要です。
評価順序
演算子の評価順については、常に左から右に行われます。
例えば式「test = 100 – 20 – 10;」がある場合、まず評価されるのはtestというオペランドで、
次に100、20、10の順序で評価されていきます。
上記の例は固定の数値ですが、100、20、10の各オペランドが変数や関数の場合は、左から順に右に評価されていきます。
上記の式の場合、右辺に対して括弧をつけることで、演算の順序を変更することは可能です。
演算の順を変えることができても、評価の順は変わらないことに注意が必要です。