자바스크립트에서 변수는 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 와의 주요 차이점으로, 변수 관리와 코드 안정성 측면에서 더 나은 선택을 제공합니다.
'IT > JavaScript와 Framework' 카테고리의 다른 글
자바스크립트 콜백지옥 해결법, 비동기 통신 (0) | 2025.04.01 |
---|---|
자바스크립트 비동기 프로그래밍 (0) | 2025.03.27 |
자바스크립트의 map 메서도 (0) | 2025.03.24 |
옵셔널 체이닝(optional chaining) (0) | 2025.03.24 |
배열 삽입 삭제 예제... (0) | 2023.12.08 |
댓글