> 웹 프론트엔드 > JS 튜토리얼 > `let` 문은 JavaScript에서 전역 속성을 생성합니까?

`let` 문은 JavaScript에서 전역 속성을 생성합니까?

Barbara Streisand
풀어 주다: 2024-12-09 14:18:13
원래의
908명이 탐색했습니다.

Do `let` Statements Create Global Properties in JavaScript?

문에 전역 속성을 도입하시겠습니까?

JavaScript에서 var 선언은 전역 객체에 속성을 생성합니다. 그러나 ES6에 도입된 let 선언은 블록 수준 가시성으로 어휘 범위 지정을 적용합니다.

Do let Declarations Create Global Properties?

ECMAScript 사양에 따르면, 문은 전역 객체에 속성을 생성하지 않습니다. 전역 바인딩은 주로 전역 개체에 연결된 전역 환경의 개체 환경 레코드에 저장됩니다. var를 사용한 함수, 생성기, 변수 선언은 이 객체 환경 레코드에 포함되고, let과 같은 다른 선언은 선언적 환경 레코드에 저장됩니다.

설명

전역 객체에 직접 속성을 생성하는 var와 달리 선언적 환경 레코드 내에 바인딩이 포함되도록 합니다. 이 레코드는 내부 데이터 구조를 활용하므로 외부에서 액세스할 수 없습니다. 반면 개체 환경 레코드는 데이터 저장을 위해 JS 개체를 활용합니다. 여기서 각 개체 속성은 바인딩을 나타냅니다. 결과적으로 var 바인딩은 전역 개체의 속성으로 반영됩니다.

브라우저 및 Node.js 동작

브라우저에서 Firefox와 같은 일부 구현은 모순되는 동작을 나타냅니다. 사양. 바인딩이 전역 개체(창)의 속성으로 표시되도록 합니다. 그러나 엄격한 Node.js 환경에서는 --harmony 또는 --harmony_top_level 플래그를 사용하여 선언적 환경 레코드 내에서 바인딩이 올바르게 격리되도록 합니다.

결론

에도 불구하고 어휘 범위 지정으로 인해 let 선언은 전역 객체에 속성을 도입하지 않습니다. 대신 글로벌 환경의 선언적 환경 기록에 국한되어 제공하는 캡슐화 및 블록 수준 가시성을 강조합니다.

위 내용은 `let` 문은 JavaScript에서 전역 속성을 생성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿