var vs let
var는 함수 스코프·호이스팅 문제가 있고, let은 블록 스코프로 더 안전합니다.
var는 옛 방식, let은 ES2015의 개선된 변수 선언입니다. 스코프와 호이스팅 동작이 다릅니다.
| 구분 | var | let |
|---|---|---|
| 스코프 | 함수 스코프 | 블록 스코프 |
| 호이스팅 | undefined로 초기화 | TDZ(접근 시 에러) |
| 재선언 | 가능 | 불가능 |
| 권장도 | 비권장(레거시) | 권장 |
var를 쓸 때
거의 사용하지 않습니다. 오래된 코드를 이해할 때만 알면 됩니다.
let를 쓸 때
재할당이 필요한 변수에 사용합니다(그 외는 const).
결론
새 코드에서는 var를 쓰지 말고 let·const를 사용하세요. var의 함수 스코프는 예상치 못한 버그의 흔한 원인입니다.
← 개발 개념 비교 전체 보기