let num = 1;
let newNum = num++;
console.log(num); // 1
console.log(newNum); // 2 로 결과가 나올 것이라 예상했는데
콘솔에서는 각각 2와 1로, 정반대의 결과값이 출력됐다.
왜 그럴까?
let newNum = num++;
위 코드에서 발생하는 과정을 스텝별로 살펴보면,
그러므로 맨 위의 코드를 다시 순차적으로 작성하면 아래와 같다.
let num = 1;
let newNum = num;
num++;
만약 nuwNum에도 2를 할당하고자 한다면
let num = 1;
num++
let newNum = num;
이 돼야 하므로, 최종적으로
let newNum = ++num;
으로 작성해야 한다.
프로그래밍은 왼쪽에서부터 순서대로 실행된다는 것을 절대 잊지 말 것!!
비슷한 예로
alert("2 더하기 2는 " + 2 + 2);
결과는 "2 더하기 2는 22" 로 출력된다.
그러므로 원하는 결과인 "2 더하기 2는 4" 를 얻기 위해서는 괄호로 묶어 주어야 한다.
(가독성을 위해서라도 괄호를 쓰는 습관을 들이는 것이 좋다.)
alert("2 더하기 2는 " + (2 + 2));