>  기사  >  웹 프론트엔드  >  JavaScript 변수를 어떻게 설정 해제합니까?

JavaScript 변수를 어떻게 설정 해제합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-25 09:56:10104검색

How Do I Unset JavaScript Variables?

JavaScript 변수 설정 해제

문제:

JavaScript의 전역 변수를 설정하고 여러 스크립트에 의해 액세스됩니다. 그러나 후속 스크립트가 해당 변수의 존재나 값을 감지할 수 없도록 전역 범위에서 변수를 제거해야 하는 경우가 있을 수 있습니다.

해결책:

JavaScript 변수를 설정 해제하는 올바른 접근 방식은 변수가 처음 정의된 방식에 따라 다릅니다.

1. var:

으로 정의된 변수 var 키워드를 사용하여 선언된 변수는 delete 연산자를 사용하여 설정을 해제할 수 없습니다. 전역 범위에 영구적으로 연결되어 제거할 수 없습니다.

var globalVar = 1;
delete globalVar; // Returns false
console.log(globalVar); // Outputs 1

2. var 없이 정의된 변수:

var 키워드 없이 생성된 변수는 전역 개체(일반적으로 window)에 암시적으로 연결됩니다. 삭제 연산자를 사용하여 설정을 해제할 수 있습니다.

globalVar = 1;
delete globalVar; // Returns true
console.log(globalVar); // Throws ReferenceError

기술적 설명:

ECMAScript 사양은 변수가 저장되는 두 가지 유형의 환경을 정의합니다.

  • VariableEnvironment: var를 사용하여 정의된 변수를 저장합니다. 삭제할 수 없습니다.
  • LexicalEnvironment: var 없이 정의된 변수를 저장합니다. 삭제 연산자를 사용한 속성 삭제를 지원합니다.

var로 선언된 변수는 현재 범위에 연결된 VariableEnvironment에 저장됩니다. 이러한 변수를 제거하려면 일반적으로 브라우저 기반 환경에서 사용되지 않는 평가 컨텍스트에서 코드를 실행해야 합니다.

var 없이 정의된 변수는 중첩된 LexicalEnvironment에 있습니다. 현재 환경에서 변수를 찾을 수 없는 경우 JavaScript는 상위 환경을 검색합니다. 궁극적으로 전역 개체에서 속성을 검색하려고 시도합니다. 객체의 속성은 삭제할 수 있습니다.

참고:

  • var로 정의된 변수는 범위의 맨 위로 끌어올려지므로 나중에 초기화되더라도 , 처음부터 정의된 것으로 간주됩니다.
  • 엄격 모드는 변수 조회 규칙에 영향을 미칩니다. 엄격 모드에서는 비엄격 모드에서 전역 속성으로 확인된 어휘 참조로 인해 "선언되지 않은 변수" 오류가 발생할 수 있습니다.

위 내용은 JavaScript 변수를 어떻게 설정 해제합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.