-
javascript 변수 생명 주기와 TDZ(Temporary Dead Zone)tmp 2023. 12. 13. 17:49
JavaScript에서 변수는 세 단계의 생명주기를 가지고 있습니다:
- 선언(Declaration): 변수가 선언되었을 때, 메모리 공간이 할당되지만 초기화되지 않습니다.
- 초기화(Initialization): 변수가 선언된 스코프에 진입하면서 값이 할당되는 단계입니다. 이때 TDZ(일시적인 사각지대)가 적용될 수 있습니다.
- 할당(Assignment): 변수에 값이 할당되고 해당 변수가 사용될 수 있게 됩니다.
TDZ(Temporary Dead Zone)는 변수가 선언된 후 초기화되기 전에 접근하려고 할 때 발생하는 현상입니다.
즉, 변수가 선언은 되었지만 아직 값을 할당받지 않은 상태에서 해당 변수를 참조하면 TDZ에 진입하게 되어 에러가 발생합니다.
console.log(x);
let x = 10; // Uncaught ReferenceError: x is not defined
let z;
console.log(z); // Uncaught ReferenceError: x is not defined[참고] var 선언된 변수는 호이스팅 되면서 자동으로 undefined로 초기화된다. 따라서 TDZ와는 관계없다.
'tmp' 카테고리의 다른 글
이미 특정 포트가 사용중이라며 오류 나는경우 (0) 2024.01.15 페이지 네이션 (2) 2024.01.10 [1원짜리팁]javascript 숫자를 3자리 마다 콤마 표시하기 (0) 2023.12.12 MVC 패턴의 흔한 .htaccess에 대한 설명 (3) 2023.11.30 wsl 로 windows 에 ubuntu 설치하 (0) 2023.11.29