Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- await
- vue
- hoisting
- 오블완
- vitre
- reactivity
- es6
- html 엔티티
- composition api
- 앱 빌드
- eruda
- dex모드
- ref
- promise
- watchEffect
- tdz
- mobile dev tools
- let
- const
- computed
- synchronus
- setup 함수
- Component
- composition API
- async
- 템플릿 문법
- 티스토리챌린지
- asynchronus
- drective
- watch
Archives
- Today
- Total
uxtry
dic: TDZ(Temporal Dead Zone) 본문

TDZ(Temporal Dead Zone)는 자바스크립트에서 let과 const키워드로 선언된 변수가 호이스팅 된 이후, 실제 초기화되기 전까지 변수를 참조할 수 없는 구간을 의미합니다. 이는 코드의 예측 가능성을 높이고 오류를 방지하기 위한 메커니즘입니다.
TDZ가 발생하는 이유
var로 선언된 변수는 undefined로 초기화되어 호이스팅 후 초기화 되지 않은 상태에서도 접근할 수 있습니다. 반면, let과 const는 변수가 실제로 선언된 시점에 도달하기 전까지 접근할 수 없도록 설계되어 있습니다. 이렇게 해야 사용자가 변수를 참조하는 오류를 예방할 수 있습니다.
TDZ 예시
console.log(a); //ReferenceError: 초기화전에 변수'a'에 접근할 수 없다.
let a =3;
function example(){
console.log(b); //RefrenceError: 초기화전에 변수'b'에 접근할 수 없다.
let b = 5;
}
위 예제에서 변수 a와 b는 선언 전에 접근하려고 하면 refernceError가 발생합니다. let과 const로 선언된 변수는 코드의 선언 시점에 도달하기전까지는 TDZ에 머물러 있는 상태입니다.
TDZ와 let및 const의 차이점
- let: TDZ가 끝난 후, 재할당이 가능하지만 선언 전에는 접근할 수 없습니다.
- const: TDZ가 끝난 후, 반드시 초기화 되어야 하며, 이후 재할당이 불가능합니다.
TDZ는 선언 전 접근을 방지해 코드의 안전성을 높여주는 역활을 하므로, 코드를 작성할 때 변수를 선언 위치보다 앞서 사용하지 않도록 유의하는것이 중요합니다.
'코딩단어설명 (dic:)' 카테고리의 다른 글
| dic: 동기와 비동기 (5) | 2024.11.04 |
|---|---|
| dic: 호이스팅(hoisting) (0) | 2024.10.29 |