let,var,const 스코프 규칙 등

김하은·2023년 5월 7일
0

스코프규칙

var 는 함수 스코프를 가진다.
let과 const 는 블록 스코프를 가진다. => 블록안에서만 사용가능.

호이스팅

var는 함수 스코프의 최상단으로 호이스팅되고, 선언과 동시에 undefined로 초기화된다.
let 과 const는 블록스코프 최상단으로 호이스팅되나, 선언만되고 할당되기 전까지는 초기화되지 않는다. => TDZ(Temporal Dead Zone) 즉, 선언은 되었으나 참조할 수 없는 사각지대를 같는다고 한다.

strict모드가 아니라는 가정하에

글로벌 객체로의 바인딩.

var는 글로벌 스코프에서 선언되었다면 글로벌객체에 바인딩된다.
let과 const는 글로벌스코프에서 선언되었더라도 글로벌 객체에 바인딩되지 않는다.

var는 재선언이 가능하고, let과 const는 재선언이 불가하다.

또한, var와 let은 재할당이 가능한 반면, const는 재할당이 불가하다.
const 는 선언과 초기화가 반드시 존재해야하며 재할당이 불가하다. => 고정값을 선언 시 사용한다.

0개의 댓글