[JS] 전위 연산자와 후위 연산자의 차이
1번 문제!
let first = 1; // 2 나의 예상 first === 1
let second = first++; // 1 나의 예상 second === 2
let firstNext = 12; //13 나의 예상 firstNext === 12
let secondNext = ++firstNext; //13 나의 예상 secondNext === 13
위의 2개의 항목에 따라 값이 달라진다.
우선 난 전위 연산자가 되는지도 몰랐다.
또한 두개의 값또한 다르게 생각했다.
왜 나는 틀렸는가?
난 기존의 할당된 개념은 바뀌지 않을 거라 생각했다.
second, secondNext 녀석들은 first, firstNext의 증감만을 고려했는데 값이 전혀 예상과 달랐다.
2.문제 해결실마리 찾음
콘솔창을 열어
let a = 8;
a++
a // a++을 친순간은 8이 출력되었고
이후에
a를 호출하였는데 9가 되었다.
let b = 8;
++b // ++b를 친순간에 9가 나오고
b b는 9였다.
3. 분석
let first = 1;
let second = first++;
위에것을 분석해보자면 2 줄이 완성되었기 때문에 first는 연산자의 적용을 받아 값이 상승 되어서 2가 된다.
second의 경우 선언한 first에 후위 연산자가 적용이 되었기 되면에 값 상승이 나중에 이루어져서 first를 그대로 따르게 된다.
4.결론!
빠른 값상승 적용을 원하면 전위연산자로 적용하고
변수에 변수를 할당하는 것은 좀 복잡해질수 있으므로 주의 한다.