이 글의 내용은 js 변수 승격이 무엇을 의미하는지에 관한 것입니다. js 변수 프로모션 사용에 대한 소개(예제)에는 특정 참고 가치가 있습니다. 도움이 필요한 친구가 참고할 수 있기를 바랍니다.
Introduction
가변 호이스팅 호이스팅은 JavaScript 실행 컨텍스트가 작동하는 방식에 대한 사람들의 이해이며 공식적인 것은 아닙니다.
문자 그대로 이해하면 변수 승격은 변수와 함수의 선언이 물리 계층의 범위 앞으로 이동된다는 의미입니다. 하지만 이러한 이해는 정확하지 않으며 효과는 동일하지만 실제 구현은 컴파일 단계에서 JavaScript 변수 및 함수의 선언이 메모리에 저장된다는 것입니다
이는 사용자가 공식적으로 함수 선언 또는 변수 앞에 사용할 수 있습니다
함수 홍보
선언하기 전에 JavaScript
에서 우리는 함수를 사용할 수 있습니다. 모두가 다음과 같이 경험했을 것입니다: JavaScript
中,在声明一个函数前,我们就能够使用它,大家应该都体验过,像这样:
test(); function test() { // do something }
在正常的使用情况下,应该需要先声明函数才能调用,但是这种方法仍然能够运行,这是因为JavaScript自动将函数声明事先存入了内存的原因,看起来就像JavaScript自动把函数声明提升到了最前面
变量的提升
对于变量,JavaScript使用类似的方法,但是要注意一点的是,对于变量的提升,JavaScript只会将变量声明提升,但是不会把初始化提升,如果在变量初始化之前使用,则会得到undefined
// undefined console.log(a); // ReferenceError: b is not defined console.log(b); var a = 10;
// undefined console.log(num); num = 6; // 6 console.log(num); num += 7; // 13 console.log(num); var num;
// undefined console.log(num); num = 1; // 1 console.log(num); var num = 2; // 2 console.log(num);
这里要注意,JavaScript
的变量提升是针对var
的,而let
和const
// ReferenceError: a is not defined
console.log(a);
let a = 10;
일반적인 사용에서는 호출하기 전에 먼저 함수를 선언해야 하지만 이 메서드는 여전히 실행될 수 있습니다. JavaScript는 함수 선언을 미리 메모리에 자동으로 저장하는데 JavaScript는 자동으로 함수 선언을 앞쪽으로 승격시키는 것처럼 보입니다
Variable Promotion
For 변수의 경우 JavaScript는 비슷한 방법을 사용하지만 변수 승격의 경우 JavaScript는 변수 선언만 승격하고 초기화는 승격하지 않는다는 점에 유의하세요.
var a = 100; function fn() { // undefined console.log(a); var a = 200; // 200 console.log(a); } fn(); // 100 console.log(a); var a; // 100 console.log(a); // 300 var a = 300; console.log(a);rrreeerrreee여기서
JavaScript
의 변수 승격은 var
용이고 let
에 대한 것이라는 점에 유의해야 합니다. const
를 사용한 변수 승격 기능rrreee
위 내용은 js 변수 승격이란 무엇을 의미합니까? js 변수 승격 사용 소개(예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!