var va let va const

 

var

함수 스코프

함수 스코프의 최상단으로 호이스팅

선언 후 할당없이 호출하면 undefined (선언과 동시에 undefined로 초기화되기 때문)

strict mode가 아닐때, 글로벌 스코프에서 선언 시 글로벌 객체에 바인딩

재선언 가능

재할당 가능

 

let

블록 스코프

블록 스코프의 최상단으로 호이스팅

선언 후 할당없이 호출하면 ReferenceError (이것을 TDZ(Temporal Dead Zone)이라함, 선언은 했지만 참고할 수 없는 사각지대)

strict mode가 아닐때, 글로벌 스코프에서 선언해도 글로벌 객체에 바인딩되지 않음

재선언 불가능

재할당 가능

 

 

const

블록 스코프

블록 스코프의 최상단으로 호이스팅

선언 후 할당없이 호출하면 ReferenceError (이것을 TDZ(Temporal Dead Zone)이라함, 선언은 했지만 참고할 수 없는 사각지대)

strict mode가 아닐때, 글로벌 스코프에서 선언해도 글로벌 객체에 바인딩되지 않음

재선언 불가능

재할당 불가능

선언과 초기화가 반드시 동시에 일어나야함

상수와 같은 고정값을 선언할 때 사용

 

 

이전에 읽은 아티클 

[아티클 프로젝트 004] let, const와 블록 레벨 스코프


 

[아티클 프로젝트 057] 취준생이 반드시 알아야 할 프론트엔드 지식들 (var vs let vs const)

github.com/baeharam/Must-Know-About-Frontend/blob/master/Notes/javascript/var-let-const.md

+ Recent posts