자바스크립트의 호이스팅

규갓 God Gyu·2024년 11월 27일

면접질문

목록 보기
17/142

자바스크립트가 코드를 실행하기 전 변수, 함수 선언을 코드의 최상단으로 끌어올리는 것처럼 동작하는 특징
코드의 선언된 위치와 관계없이 변수를 사용할 수 있는 것처럼 보임
but 선언의 호이스팅일 뿐, 변수의 값 할당까지 끌어올려지진 않음.
ex - var는 선언 자체는 호이스팅 되도, 초기화되기 전까진 undefined로 평가

함수 선언은 전체가 호이스팅 되어서, 함수 호출을 선언 이전에 해도 문제 없음

es6에 도입된 let const는 호이스팅은 되고 선언 전 접근하면 error발생
Temporal Dead Zone(TDZ) 개념 때문인데,
TDZ는 변수가 선언되도 초기화되기 전까지 구간이며,
let const로 선언된 변수는 TDZ가 존재하며 , 이 구간에선 변수에 접근할 수 없음
결국 TDZ는 코드에서 변수가 선언된 시점부터 초기화될 때까지의 구간에서 변수를 사용하지 못하게 막아주는 역할
var 는 undefined, let const는 TDZ로 인해 ReferenceError를 발생시킴

profile
웹 개발자 되고 시포용

0개의 댓글