JavaScript 인터뷰 #1: var, let, const의 차이점
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
JavaScript 초보 개발자 및 인터뷰 준비자, 변수 선언 방식에 대한 기초 개념 정리 필요자
(난이도: 중급)
핵심 요약
var
는 함수 스코프,let
과const
는 블록 스코프를 가지며, 호이스팅(hoisting)이 발생var
는 재할당 가능하지만,const
는 상수로 선언하여 재할당 불가능let
은 재할당 가능하지만 재선언 불가능하며, Temporal Dead Zone(TDZ) 개념 적용const
는 불변 객체로 선언 시 참조값 변경 불가능, 배열/객체 내부 값 변경 가능
섹션별 세부 요약
1. 변수 선언 키워드의 기본 특성
var
는 함수 범위에 적용되며, 함수 내에서 선언된 변수는 외부에서 접근 가능let
과const
는 블록 범위({}) 내에서만 유효하며, 외부 범위에서 접근 불가var
는 호이스팅으로 인해 선언 전에 사용 가능하지만, 값은undefined
let
과const
는 호이스팅 발생하지만, TDZ로 인해 선언 전에 사용 시 ReferenceError 발생
2. 재할당 및 재선언 가능 여부
var
는 재할당 및 재선언 가능let
은 재할당 가능하지만 재선언 불가능const
는 재할당 및 재선언 모두 불가능
3. 상수 선언 시 주의사항
const
로 선언된 변수는 값 변경 불가능하지만, 참조형 데이터(배열, 객체)의 내부 요소는 변경 가능const
는 초기화 필수이며,const x;
처럼 초기화 없이 선언 불가능
결론
- 모던 JavaScript 개발에서는
var
대신let
및const
사용 권장 let
은 동일 범위 내에서 변경 가능한 변수,const
는 불변 값/객체 선언 시 사용- TDZ와 호이스팅 차이를 통해 코드 오류 최소화 가능