JavaScript의 시간적 데드존 이해
JavaScript로 작업하는 동안 선언된 변수에 액세스할 때 "시간적 데드존"이라는 용어를 접할 수 있습니다. 초기화하기 전에 let과 const를 사용하세요. 이로 인해 ReferenceError가 발생하여 머리가 긁힐 수 있습니다.
시간적 데드존
시간적 데드존은 블록 범위 실행 기간입니다. 변수가 아직 정의되지 않은 변수(let 또는 const로 선언됨) 이 정의되지 않은 기간은 변수가 선언된 순간부터 초기화가 처리되는 시점까지 존재합니다.
Scope and Hoisting
블록 범위 변수는 var 선언과 달리 정의된 블록으로 제한된 범위를 가집니다. 선언을 해당 범위의 맨 위로 이동하는 JavaScript 인터프리터의 메커니즘인 호이스팅은 let 및 const 변수에 적용되지 않습니다. 이로 인해 변수가 이미 선언되었지만 액세스할 수 없는 임시 데드존이 생성됩니다.
Impact
임시적 데드 내에서 let 또는 const 변수에 액세스 zone에서 ReferenceError가 발생합니다. 예는 다음과 같습니다.
console.log(aVar); // undefined console.log(aLet); // ReferenceError: Cannot access 'aLet' before initialization var aVar = 1; let aLet = 2;
이 코드에서 var로 선언된 aVar는 초기화 전에 액세스할 수 있지만, let으로 선언한 aLet은 액세스할 수 없습니다. aVar는 끌어올려졌지만 aLet은 그렇지 않기 때문입니다.
발생하는 상황
다음과 같은 상황에서 시간적 데드존이 발생할 수 있습니다.
회피
시간적 데드존을 방지하려면 블록 범위 변수에 액세스하기 전에 초기화해야 합니다. 또 다른 접근 방식은 블록 외부에 선언된 전역 let 또는 const 변수를 사용하는 것입니다.
위 내용은 JavaScript 임시 불감대란 무엇이며 어떻게 피할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!