TIL 11

모모·2021년 10월 26일
0

TIL

목록 보기
11/28

for 문은 초기화, 조건문, 반복문으로 구성된다

for(let i = 0; i > 10; i++){}

모두가 알다시피 이런 형태이다.
여기서 i의 let을 생략해줄 수 있다고 예전 현직자 강의에서 들은 적이 있다.

편의성때문에 줄곧 생략해 왔는데, 스코프와 변수에 대해 알게된 지금, 과연 이 초기화 부분에서 생략된 변수는 var인지 let인지 궁금해졌다.

var는 몇 가지 문제점을 가지고 있다.
그중 하나는 반복문에서 선언된 변수가 반복문 밖에서도 살아있다는 것이다.

for (i = 1; i < 10; i++) {
  console.log(i)
}
console.log(i)

만약 이 예시의 i 선언에 사용된 변수가 let일 경우 for문 밖의 console.log는 스코프 밖이므로 출력되지 않을 것이다.
하지만 var라면 가뿐히 1부터 9까지 출력한 뒤에 한번 더 출력될 것이다.

그렇다. 생략된 변수의 정체는 var였던 것이다.
유용하게 생략 기능을 사용해왔다 생각했는데 나중에 한참동안이나 오류를 찾지 못할 뻔 한 위험한 습관이었다.

0개의 댓글