let x = 5;
let y = x++;
y += 2; // y = 7
x++는 값을 반환 한 후에 증가시키기 때문에 y는 기존 x값인 5가 반환되어 5의 값을 그대로 갖는다. 그 후 x 는 x = x+1 로 값이 1 증가가되기 때문에 값이 6이 된다.
한편, y += 2; 는 y = y + 2; 와 같은 식이기 때문에 y는 최종적으로 7의 값을 가지게 된다.
let x = 5;
let y = ++x;
y += 2; // y = 8
이 경우에는 값을 반환하기 전에 x값에 영향을 미치기 때문에 x는
x + 1 = x ; 로 이미 값이 1 증가되어 6, 그 값을 y에게 전달하여 y 역시 같은 값 6 을 같게 된다.
이후, y = y + 2; 우항의 y에 6을 대입하여 더하면 새로운 값으로 업데이트된 좌항의 y는 8의 값을 갖게 된다.
let x = 9;
let y = 4;
x += y; // x = 13
x += y;의 식이 x = x + y;와 같기 때문에 x = 13