카테고리 없음
자바스크리트 기술인터뷰 단골 질문 : var, let, const 차이를 설명하시오
devwriter
2021. 2. 1. 18:05
스코프
var는 함수레벨, let, const는 블럭레벨
재선언
var는 재선언해도 되지만 let, const는 재선언시 에러남
초기값
var, let는 선언 시 초기값이 없어도 되지만 const는 초기값 없으면 에러남
재할당
var, let는 재할당 되지만 const는 재할당 안됨
호이스팅
var, let, const, function, class 등의 키워드는 호이스팅 됨
TDZ (Temporal Dead Zone)
변수의 생성 단계 : 선언 -> 초기화 -> 할당
var는 선언과 초기화가 한번에 이루어 짐
// var 호이스팅 => 변수 선언 & 초기화
console.log(var_val); // undefined
var var_val;
console.log(var_val); // undefiled
var_val=1
console.log(var_val); // 1
// let 호이스팅 => 선언
console.log(let_val); // error
let let_val; // <= 초기화
console.log(let_val); // undefiled
let_val=1 // <= 할당
console.log(let_val); // 1
다시 호이스팅 (feat. 블럭레벨 스코프)
let은 호이스팅이 일어 나지 않는 것과 현상이 동일하다.
호이스팅이 일어났는지 어떻게 알 수 있을까?
let let_val=1;
{
// 호이스팅이 일어 나지 않는다면 1, 일어 난다면 error
console.log(let_val);
let let_val = 1;
}