> 웹 프론트엔드 > JS 튜토리얼 > JavaScript Hoisting에서 `let`과 `const`는 `var`와 어떻게 다른가요?

JavaScript Hoisting에서 `let`과 `const`는 `var`와 어떻게 다른가요?

Barbara Streisand
풀어 주다: 2024-12-31 04:18:12
원래의
309명이 탐색했습니다.

How Do `let` and `const` Differ from `var` in JavaScript Hoisting?

let 또는 const로 선언된 변수 호이스팅

var로 선언된 변수는 호이스팅 중에 예상대로 동작하지만, let 또는 const로 선언된 변수는 Exhibition 행동이 다릅니다.

모두 게양 선언

모든 JavaScript 선언(var, let, const, function, function*, class)은 호이스팅을 거치므로 해당 범위 내 어디에서나 인식할 수 있습니다.

초기화 차이

그러나 var/function/function*과 let/const/class 선언은 초기화에 있습니다. Var 선언은 범위 시작 시 바인딩이 생성되는 순간부터 정의되지 않은 상태로 초기화됩니다. 대조적으로, let/const/class 선언은 해당 명령문이 평가될 때까지 초기화되지 않은 상태로 유지됩니다.

초기화되지 않은 변수에 대한 임시 데드 존

이 초기화되지 않은 상태는 "임시 데드 존"을 생성합니다. " 여기서 초기화 전에 변수에 액세스하면 ReferenceError.

예:

x = y = "global";
(function() {
    x; // undefined
    y; // Reference error: y is not defined

    var x = "local";
    let y = "local";
}());
로그인 후 복사

let vs. const in Hoisting

Let과 const는 측면에서 동일하게 작동합니다. 게양의. 차이점은 상수는 선언 시 항상 값을 할당해야 한다는 것입니다.

결론

let 또는 const로 선언된 변수는 호이스팅되지만 내부에서 초기화되지 않은 상태로 유지됩니다. 선언문이 처리될 때까지 일시적인 데드존입니다. 조기에 액세스하면 ReferenceError가 발생합니다.

위 내용은 JavaScript Hoisting에서 `let`과 `const`는 `var`와 어떻게 다른가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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