티스토리 뷰

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.결론!

빠른 값상승 적용을 원하면 전위연산자로 적용하고

변수에 변수를 할당하는 것은  좀 복잡해질수 있으므로 주의 한다.

 

 

728x90

'[JS] > [JS] 오류노트' 카테고리의 다른 글

[JS] .join() 메소드 틀린것  (0) 2021.07.30
[JS] 할당 자리,순서 유의  (0) 2021.07.20
[JS] While 실수 한것  (0) 2021.06.17
[JS] 오류 if ,else if, else  (0) 2021.06.15
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함