> 웹 프론트엔드 > JS 튜토리얼 > JavaScript에서 전역 변수 선언 시 `var`, `let`, `const` 및 `window.a`는 어떻게 다릅니까?

JavaScript에서 전역 변수 선언 시 `var`, `let`, `const` 및 `window.a`는 어떻게 다릅니까?

Linda Hamilton
풀어 주다: 2024-11-30 12:45:12
원래의
512명이 탐색했습니다.

How Do `var`, `let`, `const`, and `window.a` Differ in Declaring Global Variables in JavaScript?

전역 변수를 포함한 JavaScript의 변수 선언에 대한 구문 변형

소개:

JavaScript 수수께끼 같은 var 키워드와 변수 선언을 위한 다양한 구문 옵션을 제공합니다. 그 대안. 이 문서에서는 전역 범위 내에서 이러한 선언 방법 간의 주요 차이점을 살펴봅니다.

변수 선언 구문:

  1. var a = 0;: 이 전통적인 구문은 a라는 전역 변수에 값을 할당합니다. 이는 전역 객체(보통 창의 속성)가 됩니다. 브라우저).
  2. a = 0;: var 키워드를 생략하면 암시적으로 전역 변수가 생성되므로 절대 권장하지 엄격 모드에서는 오류가 발생하기 쉽습니다.
  3. window.a = 0;: 이 접근 방식은 전역 변수에 속성을 명시적으로 설정합니다. 객체, 주로 외부 프레임워크나 라이브러리의 변수에 액세스하는 데 사용됩니다.

차이점:

1. 객체 바인딩:

  • var 선언은 전역 객체의 환경 레코드에 식별자 바인딩을 생성합니다.
  • let 및 const 선언은 별도의 선언적 환경 레코드에 식별자 바인딩을 생성하여 해당 변수를 만듭니다. 범위 밖에서는 접근이 불가능합니다.

2. 액세스 시간(시간적 데드 존):

  • var 바인딩은 코드 실행 전에 생성되며(전역 범위) 즉시 액세스할 수 있습니다.
  • let 및 const 바인딩은 코드 전에 생성됩니다. 실행되지만 해당 선언문에 도달할 때까지 액세스할 수 없습니다(일시적 데드). 존).

3. 속성 생성:

  • var는 전역 객체에 열거 가능한 속성을 생성합니다.
  • let 및 const는 전역 객체에 속성을 생성하지 않습니다.

4. 외부 컨텍스트에서 변수에 액세스:

  • window.a를 사용하면 var 선언을 인식하지 못할 수 있는 외부 프레임워크 또는 라이브러리에서 전역 변수에 액세스할 수 있습니다.

추가 ES2015의 구문 변형 (ES6):

  1. let a = 0;: 블록 범위를 사용하여 비전역 변수를 생성합니다.
  2. const a = 0;: 블록을 사용하여 비전역 상수를 생성합니다.

결론:

이러한 구문 변형을 이해하는 것은 효과적인 JavaScript 개발에 매우 ​​중요합니다. var는 전통적이지만 일반적으로 향상된 범위 관리 및 향상된 성능 최적화를 위해 let 및 const를 사용하는 것이 선호됩니다. window.a 구문은 특정 상황에서 여전히 유용합니다.

위 내용은 JavaScript에서 전역 변수 선언 시 `var`, `let`, `const` 및 `window.a`는 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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