그게 뭔데 덕아!
아무튼 어제오늘 전위연산자/후위연산자를 다루며
어라 기억했나?
싶었는데 미심쩍은 기분이 들어 다시 한 번 기록해보는
간단한 오늘의 상(?)식.
오늘 기억할 건 이거.
++/-- 위치에 따른 결과값을 제대로 이해하기.
let a = 0
이든 var i = 0
어떤 변수를 할당해 주고 거기에 1씩 더해야 하는 상황이 생긴다.
예를 들면, for
문 사용할 때도
for (let i=0; i<Array.length; i++){}
이 구조를 정말 많이 사용하듯이.. 어떤 프로그래밍 언어라 하더라도 자주 쓰는 연산자라고 생각한다.
그런데 저 i++
. 참 혁신적이고 좋다.
원래 어떤 변수에 1씩 더해주려면 우리는 아래와 같은 코드를 사용해야 한다.
let a = 0 // 변수 a에 0을 할당
a = a + 1 // 기본형
a += 1 // 축약형
위와 같이 a+1
을 변수 a
에 새로 할당해주거나, 축약형의 형태로 줄여서 쓰곤 한다.
그런데,
for
문을 사용하거나, 조금 조잡하지만 while
문에 인덱스 넘버로 1씩 더해주며 사용하거나, 어떤 알고리즘을 짜면서 어떤 변수를 1씩 넘길 일이 무조건 있단 말이지?
그럴 때 좀 더 간편한 코드를 쓰게끔 도와주는 것이 요 전위/후위 연산자 되시겠다.
전위 연산자와 후위 연산자의 차이를 ChatGPT에게 물어봤다.
깔끔하게 표로 정리해 보자면,
전위든 후위든 그 이름은 전/후만 생각하면 된다.
++ / --
연산이 변수의 앞에 있느냐, 뒤에 있느냐 그 차이.
그래서 달라지는 것은 뭐냐고?
연산(값의 변경)이 먼저인지, 값을 할당하는 게 먼저인지 그 차이라고 생각하면 된다.
전위 연산자 (++variable
, --variable
)
전위 연산자는 변수 앞에 연산자가 있으니,
연산을 먼저 수행한 후 -> 값을 반환
후위 연산자 (variable++
, variable--
)
후위 연산자는 연산자가 변수 뒤에 있으니,
값을 먼저 반환한 후 -> 연산을 수행
이런 차이로 인해서,
아래와 같은 결과를 불러오는 것!!
간단한 개념이다 보니 예측한 대로 로그가 찍혀주어서 뿌듯하구요^^
이제 전위/후위 연산자 개념은 확실히 잡았다! 생각하고 정진 하겠습니다.