자바스크립트 for문 (feat 내가 생각해도 바보같은 실수…)

less than 1 minute read

나의 최애 for문

나는 코딩할때 for문을 꽤나 즐겨쓴다. 단순히 while을 쓰는 것 보단 가독성이 좋다고 생각해서 이다. foreach, map 등 js에서 지원하는 다양한 반복문 메소드도 쓰지만 코딩을 하다보면 아무래도 이 메소드만으로는 한계가 찾아온다.

최근에 js를 제대로 공부해보면서 전에는 아무렇지 않게 써오던 var에 대해 위험성을 깨닫고 const나 let을 주로 써왔다.

그러다 어느날 for문을 써야할 때가 찾아오고 언제나 처럼 const로 for문을 선언했더니 에러가 떴다…

에러남!!!!

// TypeError: Assignment to constant variable.
for(const i=0; i<n; i++){
    // 반복문 로직
}

이 기회에 부족했던 기초지식을 탄탄히 하기위해 for문에서의 const는 왜 애러가 나는걸까에 대해 한번 자세히 일아보았다.

에러가 나는 이유

곰곰히 생각해보니까 바보였다. const는 재할당이 불가능하다! 라고는 알고 있었지만 변경이 가능하다고 생각했다. for문에서 할당하는건 const i = 0 이 부분만 변수할당이 일어나고 변경은 가능하다고 생각했는데

for문의 i가 움직이는 과정은

i = 0
i = i + 1
i = i + 1

이 과정으로 움직이는게 당연했다. 변경하는 과정 또한 변수할당을 통해 거치니 당연히 const가 아니라 let을 써줘야 맞는 상황이다.

마무리…

너무 간단한 포스트라 글로도 쓰기가 부끄럽지만 다시 실수하지 말자는 의미에서 글을 써본다…

Categories:

Updated: