[Frontend 기술면접 top30] 7. var, let, const의 차이에 대해 알려주세요.
var, let, const의 차이
1. var
- 함수 스코프:
var
로 선언된 변수는 함수 스코프를 가집니다.
- 호이스팅:
var
변수는 호이스팅되어 선언 전에 참조할 수 있습니다. 하지만 값이 할당되기 전에 참조하면 undefined가 반환됩니다.
- 재선언, 재할당 가능:
var
로 선언된 변수는 재선언 및 재할당이 가능합니다.
2. let
- 블록 스코프:
let
으로 선언된 변수는 블록 스코프를 가집니다.
- 호이스팅:
let
변수도 호이스팅되나, 선언 전에 참조하면 오류(ReferenceError)가 발생합니다.
- 재할당 가능:
let
변수에는 나중에 새로운 값을 할당할 수 있습니다.
3. const
- 블록 스코프: const로 선언된 변수도 블록 스코프를 가집니다.
- 재할당 불가: const로 선언된 변수는 초기에 할당된 값이 변경될 수 없습니다. 즉, 재할당이 불가능합니다.
- 호이스팅: const 변수도 호이스팅되나, 마찬가지로 선언 전에 참조하면 오류(ReferenceError)가 발생합니다.