[JS] for문 내에서 var과 const&let의 차이

JIOO·2023년 10월 3일
0

ES6

목록 보기
10/17

for 반복문에서의 var 유효 범위

위의 예제를 보다보면 흔히 헷갈릴 수 있는 부분이 "var의 유효 범위가 {}에 제한되나?" 입니다.

아래 예제를 살펴보겠습니다.


var a = 10;
for (var a = 0; a < 5; a++) {
    console.log(a); // 0 1 2 3 4 5
}
console.log(a); // 6
 

var a = 10;로 변수 a를 선언한 상태에서 for 반복문에 동일한 변수 이름 a를 사용했습니다.

이렇게 되면 {} 으로 변수의 유효 범위가 제한되지 않기 때문에 for 반복문이 끝나고나서

console.log(a); 를 출력하면 for 반복문의 마지막 결과 값이 출력됩니다.


이러한 문제점을 해결하고 다른 언어와 통일감을 주기 위해 ES6에서는

const와 let의 변수 유효 범위를 블록{}으로 제한하였습니다.

이번엔 위 반복문 코드에 var 대신 let을 적용해보겠습니다.

var a = 10;
for (let a = 0; a < 5; a++) {
    console.log(a); // 0 1 2 3 4 5
}
console.log(a); // 10

반복문의 조건 변수 a를 let으로 선언하니 변수의 유효 범위가 for 반복문의 {} 블록 안으로 제한되었습니다.

profile
프론트엔드가 좋은 웹쟁이 with Notion (요즘은 노션과 병행 중)

0개의 댓글