일반적으로 창 속성으로 액세스되는 JavaScript의 전역 변수는 후속 스크립트에서 해당 변수를 제거해야 할 때 문제가 될 수 있습니다. . 정의되지 않은 것으로 할당하는 것은 가장 효과적인 접근 방식이 아닐 수 있습니다.
변수를 효과적으로 제거하려면 변수 정의 방법을 고려해야 합니다.
var를 사용하여 선언된 변수는 해당 범위(함수 또는 전역 개체의 속성)에 연결된 "VariableEnvironment"에 있습니다. 이러한 변수를 제거하는 것은 불가능합니다. 예:
var g_a = 1; // Define using `var` delete g_a; // Returns `false` console.log(g_a); // Outputs: 1
var 없이 선언된 변수는 환경의 계층 구조인 "LexicalEnvironment"에서 검색됩니다. 최상위 LexicalEnvironment는 전역 개체에 바인딩되어 var 없이 해당 속성에 액세스할 수 있습니다. 이러한 속성은 삭제할 수 있습니다:
g_b = 1; // Define without `var` delete g_b; // Returns `true` console.log(g_b); // Error: `g_b` not defined
var를 사용하여 생성된 참조는 VariableEnvironment에 저장되며, 이는 평가 컨텍스트를 제외한 삭제를 금지합니다( 브라우저 개발에서 일반적임).
LexicalEnvironments는 중첩되어 현재 또는 외부 환경에서 참조를 찾을 수 없는 경우 전역 객체에서 속성 검색을 가능하게 합니다. 이 경우와 같이 객체의 속성은 제거될 수 있습니다.
위 내용은 JavaScript 변수를 효과적으로 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!