AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

JavaScript 인터뷰 #1: var, let, const의 차이점

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

JavaScript 초보 개발자 및 인터뷰 준비자, 변수 선언 방식에 대한 기초 개념 정리 필요자

(난이도: 중급)

핵심 요약

  • var는 함수 스코프, letconst블록 스코프를 가지며, 호이스팅(hoisting)이 발생
  • var재할당 가능하지만, const상수로 선언하여 재할당 불가능
  • let재할당 가능하지만 재선언 불가능하며, Temporal Dead Zone(TDZ) 개념 적용
  • const불변 객체로 선언 시 참조값 변경 불가능, 배열/객체 내부 값 변경 가능

섹션별 세부 요약

1. 변수 선언 키워드의 기본 특성

  • var는 함수 범위에 적용되며, 함수 내에서 선언된 변수는 외부에서 접근 가능
  • letconst는 블록 범위({}) 내에서만 유효하며, 외부 범위에서 접근 불가
  • var호이스팅으로 인해 선언 전에 사용 가능하지만, 값은 undefined
  • letconst호이스팅 발생하지만, TDZ로 인해 선언 전에 사용 시 ReferenceError 발생

2. 재할당 및 재선언 가능 여부

  • var재할당 및 재선언 가능
  • let재할당 가능하지만 재선언 불가능
  • const재할당 및 재선언 모두 불가능

3. 상수 선언 시 주의사항

  • const로 선언된 변수는 값 변경 불가능하지만, 참조형 데이터(배열, 객체)의 내부 요소는 변경 가능
  • const초기화 필수이며, const x;처럼 초기화 없이 선언 불가능

결론

  • 모던 JavaScript 개발에서는 var 대신 letconst 사용 권장
  • let은 동일 범위 내에서 변경 가능한 변수, const는 불변 값/객체 선언 시 사용
  • TDZ와 호이스팅 차이를 통해 코드 오류 최소화 가능