일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 백준
- 회고
- 렛츠기릿 자바스크립트
- 코드스테이츠
- codestates
- 2주 프로젝트
- 리트코드
- 파이썬
- 타입스크립트
- LeetCode
- javascript
- SQL 고득점 Kit
- 손에 익히며 배우는 네트워크 첫걸음
- 정재남
- 프로그래머스
- 리액트
- programmers
- 리덕스
- 4주 프로젝트
- js
- 자바스크립트
- 코어 자바스크립트
- 타입스크립트 올인원
- Async
- 토익
- 타임어택
- python
- til
- 제로초
- 알고리즘
Archives
- Today
- Total
Jerry
[JavaScript] TDZ(Temporal Dead Zone)이란? 본문
반응형
let과 const 호이스팅 + TDZ(Temporal Dead Zone)
let과 const로 선언한 변수도 호이스팅 대상이다.
호이스팅 시 let은 undefined로 변수 초기화 하지 않음
이 상태에서 선언한 let 키워드 호출
⇒ 예외 발생 (에러) | 에러 발생 이유: 일시적 사각지대(TDZ: Temporal Dead Zone)
변수 스코프의 맨 위에서 변수의 초기화 완료 시점까지의 변수는
"일시적 사각지대"(Temporal Dead Zone, TDZ)에 들어간 변수라고 표현
- TDZ인 이유는 사각지대가 코드의 작성 순서(위치)가 아니라 코드의 실행 순서에 의해 형성되기 때문
// TDZ Example
function do_something() {
console.log(bar); // undefined
console.log(foo); // ReferenceError
var bar = 1;
let foo = 2;
}
[정리]
let 키워드는 var 키워드와는 다르게 선언 전 실행 컨텍스트 변수 객체에 등록이 되어 호이스팅이 되지만, 이 TDZ 구간에 의해 메모리가 할당되지 않아 참조 에러(ReferenceError)가 발생하는 것
변수 스코프의 맨 위에서 변수의 초기화 완료 시점까지의 변수는 "일시적 사각지대"(Temporal Dead Zone, TDZ)에 들어 간 변수라고 표현
TDZ인 이유는 사각지대가 코드의 작성 순서(위치)가 아니라 코드의 실행 순서에 의해 형성되기 때문
참고하면 도움이 되는 내용
반응형
'Front > JavaScript' 카테고리의 다른 글
[JS]this에 대해 알아보기 (1) | 2023.03.03 |
---|---|
[JS]비동기 프로그래밍 (0) | 2023.03.03 |
[JavaScript] var, let, const 의 차이점 (0) | 2023.02.21 |
[JavaScript] 호이스팅(Hoisting)이란? - 호이스팅이란 (0) | 2023.02.20 |
[리뉴얼] 렛츠기릿 자바스크립트 #4 (0) | 2022.01.06 |