演算式内に、前置型のインクリメント/デクリメント演算子を伴う変数がある と、まず、その変数の値の評価時にインクリメント/デクリメントされてから 式の計算に用いられます。
var x, y = 0 ;
x = ++y; // まず y がインクリメントされ、その値1が x に代入される
//ここで y は1になっている
x = y; // まず y がデクリメントされ、その値0が代入される
後置型演算式内に、前置型のインクリメント/デクリメント演算子を伴う変数 があると、その変数の値が評価された後で、変数の値がインクリメント/デク リメントされます。
var x, y = 0 ;
x = y++; // まずyの値が評価され、その値0が x に代入されてからyは1になる
//ここで y は1になっている
x = y; // まずyの値が評価され、その値1が x に代入されてからyは0になる
Cmmの式は、原則として左側から評価されます。下記の例を見てみましょう。
var y, x = 0 ;
y = x++ + x++ + x++ ;
この式は、下記のように評価されます。
1). y = x++ + x++ + x++ ;
2). y = 0 + x++ + x++ ; //(xの値は1)
3). y = 0 + 1 + x++ ; // (xの値は2)
4). y = 0 + 1 + 2 ; // (xの値は3)