TIL #16-1 변수의 호이스팅( hoisting), TDZ(Temporal Dead Zone )

JohnKim·2021년 4월 12일
0

javascript

목록 보기
12/26
post-thumbnail

호이스팅이란?

스코프 내부 어디서든 변수 선언은 최상위에 선언된 것 처럼 행동하는것을 의미한다.

var로 선언한 모든 변수는 코드가 실제로는 이동하지 않지만

최상위로 끌어 올려진것 처럼 행동한다. 이를 호이스팅이라고 한다.

하지만 undefined 가 뜬 이유는 선언은 호이스팅 되지만 할당은 호이스팅 되지 않기 때문이다. name 이라는 변수만 올려진 것이고 Mike라는 값은 그자리에 있는다.
할당은 3번째 줄에서 처리된다.


같은 상황에서 leterror 를 일으킨다. 하지만 letconst가 호이스팅 되지 않는 것은 아니다. Temporal Dead Zone 때문이다.

TDZ(Temporal Dead Zone)

TDZ존에서는 변수들은 사용할 수 없다.


letconstTDZ 영향을 받고

TDZ 영역에 있는 변수들은 사용 할 수 없기 때문에 할당을 받기 전까지는 사용 할 수 없다.

이는 코드를 예측 가능하게 하고 잠재적인 버그를 줄여준다.

참조:https://youtu.be/P0FY8k916e0

0개의 댓글