a++와 ++a

주땡이·2024년 3월 6일

JS

목록 보기
6/12

갑자기 a++와 ++a가 미친듯이 헷갈리면서 뇌정지가 왔다.
for문을 작성하며 i++는 익숙하지만 ++a가 나오니 순간적으로 당황스러웠다.
자바스크립트 책에는 다음과 같이 나와있었다.

  • a++
    a에 1을 더한 다음에 a의 값을 평가한다.

  • ++a
    a를 평가한 다음에 a에 1을 더한다.

읭?
분명 한글이고 한국말인데 이해가 잘 안갔다. 일본인이 쓴 책을 한글로 번역해 놓은 거라 더 헷갈리는 건가 싶어서 인터넷을 찾아보니 전위증가, 후위증가 뭐 이런 말들로 나와있는데 결론은 다음과 같다.

a++ : 먼저 해당 연산을 수행하고 나서, a의 값을 1 증가시킴
++a : a의 값이 1 증가된 후 증가된 값을 리턴함

사실 이래도 무슨 말인지 모르겠다.
다 됐고, 코드로 보자.

  • a++
let a = 1
let b = a++

console.log(a) // 2
console.log(b) // 1

해당 연산을 수행하고 나서 1을 증가시킨다고 했으니까,
b에 a(=1)를 먼저 넣고 a를 증가시켜주는 것이니,
b는 아직 1이고, a는 혼자 증가해서 2가 되었다.

  • ++a
let a = 1
let b = ++a

console.log(a) // 2
console.log(b) // 2

그럼 이건 어떨까.
a가 ++되고 난 이후의 a를 리턴한다고 했으니까,
a를 우선 증가시킨다(a=2). 그 상태로 b에 할당하니 b도 2가 된다.

사실 나중에 보면 또 까먹을 것 같아서 기록해두는 문법이다....

profile
내가 보려고 만들었습니당

0개의 댓글