ETC/CS

++가 앞에 있을 때와 뒤에 있을 때의 차이

괴발새발자 2022. 5. 15. 13:50

다음의 예제를 살펴보자.

var a = 3;
var b = a++;
var c = ++a;
console.log(a,b,c) // 이 때 값은?

이 예제의 정답은?

더보기

정답은 5, 3, 5 이다. 

왜 이런 현상이 일어날까?

 

우선 var로 선언한 a 변수에 3이 할당되었다.

그 뒤로 b 변수가 var로 선언되었다. 이 때 a 변수의 값를 할당하고 뒤에 ++가 붙었다.

이는 b 변수에 a의 값인 3이 먼저 할당 되고, 그 이후로 a 변수가 1 증가함을 의미한다. 

즉 a는 4, b는 3이 된 상태이다.

이후 var로 선언한 c 변수에 ++a의 값이 할당 되었다.

이는 a 변수의 값을 먼저 증가시키고 이를 c 변수에 할당하는 것과 같은 의미이다.

따라서 a는 5, b는 3, c는 5 값을 가지게 된다.