dev.syw
언어 · 문법

var vs let

var는 함수 스코프·호이스팅 문제가 있고, let은 블록 스코프로 더 안전합니다.

var는 옛 방식, let은 ES2015의 개선된 변수 선언입니다. 스코프와 호이스팅 동작이 다릅니다.

구분varlet
스코프함수 스코프블록 스코프
호이스팅undefined로 초기화TDZ(접근 시 에러)
재선언가능불가능
권장도비권장(레거시)권장

var를 쓸 때

거의 사용하지 않습니다. 오래된 코드를 이해할 때만 알면 됩니다.

let를 쓸 때

재할당이 필요한 변수에 사용합니다(그 외는 const).

결론

새 코드에서는 var를 쓰지 말고 let·const를 사용하세요. var의 함수 스코프는 예상치 못한 버그의 흔한 원인입니다.

← 개발 개념 비교 전체 보기