var let const 의차이?

하율찬·2022년 7월 25일
0

기술면접스터디

목록 보기
9/10
post-thumbnail

var let const는 변수와 상수를 선언하는 키워드로 사용됩니다 .
let const는 es6문법으로 블록레벨스코프의 특징을 갖고, 호이스팅은 되지만 TDZ로 인한 초기화에러로 호이스팅이 되지않는걸로 착각 할 수 있습니다.
let은 변수에 재할당이 가능하지만, const의 경우 변수 재선언 재할당 모두 불가능합니다.
var의 경우 함수레벨 스코프이며, TDZ가 발생하지않아 초기화와 선언이 동시에 일어나 메모리는 적재되지만 할당단계가 일어나지않아 undefined로 값을 표현합니다.

TDZ란 ? 일시적으로 특정 변수에 접근할 수 없는 구간으로
스코프의 시작 지점부터 해당 변수의 초기화 시작 지점까지의 구간
TDZ가 발생하면 선언과 초기화단계가 동시에 발생할수 없게됩니다.

TDZ는 JS가 동적언어이다 보니, runtime type check가 필요하여 발생하게 됩니다.

profile
함께 일하고 싶어지는 동료가 되기를 원하는 프론트엔드 개발자입니다.

0개의 댓글