본문 바로가기

Web/Frontend 기본 CS 정리

var, let, const 차이를 설명해주세요

728x90

답변

var, let, const는 자바스크립트에서 변수를 할당할 때 사용하는 키워드입니다.

먼저 var는 함수 스코프를 따르고, 블록 스코프를 무시하고 호이스팅이 발생해 변수 선언 전 접근 시 undefined가 반환됩니다. 또한 변수 재할당이 가능합니다.

let은 블록 스코프를 따르며, 호이스팅이 되지만 선언 전 접근 시 ReferenceError가 발생합니다.

let 역시 재할당이 가능합니다.

const도 블록 스코프를 따르며, 호이스팅이 되지만 선언 전 접근 시ReferenceError가 발생합니다. 또한 const는 재할당이 불가능합니다.

다만 객체나 배열의 내부 값은 변경할 수 있습니다.

 

꼬리 질문

  • var가 블록 스코프를 무시할 때 발생할 수 있는 실제 문제는 무엇인가요?
    • var는 함수 스코프를 따르기 때문에 블록 외부에서도 접근이 가능하여 의도치 않은 변수 재할당 등 예상하지 못한 동작을 일으킬 수 있습니다.