본문 바로가기
IT/JavaScript와 Framework

자바스크립변수의 호이스팅 let, var, const, TDZ(Temoral Dead Zone)

by 골든크랩 2025. 3. 26.
728x90
반응형

자바스크립트에서 변수는 var, let, const 모두 호이스팅이 이루어지지만, 호이스팅 방식이 다릅니다.
let 의 호이스팅 특징:

- let 으로 선언된 변수는 호이스팅이 되지만 초기화되지 않습니다.

- 즉, 선언만 끌어올려지고, 실제 값 할당은 선언된 위치에서 이루어집니다.

- 초기화 전에 변수에 접근하려고 하면 ReferenceError가 발생합니다.

예를 들어:

 

console.log(myVar); // undefined (var은 호이스팅 후 초기화됨)
var myVar = 10;

console.log(myLet); // ReferenceError: myLet is not defined
let myLet = 10;

호이스팅 동작 설명:

1.var : 선언과 초기화가 함께 이루어지므로, 선언 전에 접근해도 로 출력됩니다.

2.let과 const: 선언은 호이스팅되지만, **"TDZ(Temporal Dead Zone)"**에 들어가며 초기화가 이루어지기 전에는 접근할 수 없습니다. 초기화 전에 접근하려고 하면 에러가 발생합니다.


TDZ(Temporal Dead Zone) 란?

- let과 const 의 선언부터 초기화까지의 구간을 말합니다.

- 이 구간에서는 변수에 접근하면 에러가 발생합니다.

- 이는 자바스크립트가 과 를 더 안전하게 사용하도록 설계된 이유 중 하나입니다.

결론:
let 으로 선언된 변수도 호이스팅되지만, 초기화가 이루어지기 전까지는 사용할 수 없습니다. 이는 var 와의 주요 차이점으로, 변수 관리와 코드 안정성 측면에서 더 나은 선택을 제공합니다.

728x90
반응형

댓글