var, let, const 차이
각각은 변수 선언 방식에 차이가 있습니다.
var는 중복 선언, 재할당이 가능하고, let은 중복 선언은 불가능, 재할당은 가능, const는 중복 선언, 재할당 모두 불가능합니다.
스코프 차이로는
var의 경우 함수 레벨 스코프에 따라 함수 내에서 선언된 변수는 함수 내에서만 유효하고, 함수 외부에서는 참조할 수 없습니다.
let, const의 경우 블록 레벨 스코프로 함수 블록 내부에서 선언된 변수는 블록 내에서만 유효하고, 블록 외부에서는 참조할 수 없습니다.
마지막 호이스팅의 경우
var는 호이스팅이 발생하여 변수 선언 전 참조가 되었더라도, 에러가 발생하지 않고, 변수 선언 시 undefined로 초기화가 진행됩니다.
let, const의 경우 변수 선언 전 참조한다면 에러가 발생합니다. 선언과 초기화가 분리되어 진행하기 때문에 변수를 참조할 수 없는 TDZ에 빠집니다.
변수 선언은 var사용 시 중복 선언, 재할당 등의 단점으로 기본적으로 const를 사용하고, 재할당이 필요한 경우 let을 사용하는 것이 좋습니다.
호이스팅이란
함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위 최상단에 선언하는 것을 뜻합니다.
TDZ(Temporal Dead Zone)이란
변수의 선언과 초기화 사이에 일시적으로 변수 값을 참조할 수 없는 일시적 사각지대입니다.
'면접 요약 정리' 카테고리의 다른 글
HTTP와 HTTPS 정리 (1) | 2022.10.23 |
---|---|
REST API 정리 (0) | 2022.10.20 |
npm 정리 (0) | 2022.10.20 |
동기 비동기 정리 (0) | 2022.10.18 |
Node.js / Express 정리 (0) | 2022.10.17 |