웹 프론트엔드 JS 튜토리얼 JavaScript에서 변수 호이스팅을 이해하는 방법

JavaScript에서 변수 호이스팅을 이해하는 방법

Apr 20, 2019 am 11:20 AM
javascript 변수 승격

JavaScript의 변수 승격이란 변수 및 함수 선언이 코드 앞으로 이동하지만 실제로 변수 및 함수 선언 위치는 이동되지 않고 컴파일 프로세스 중에 메모리에 배치된다는 의미입니다.

JavaScript는 해석된 언어이지만 실행 전 웹 개발에서 중요한 단계는 해석기가 코드를 탐색하고 선언된 모든 변수를 식별하고 재할당될 때 이를 기록하고 코드를 블록으로 나누는 것입니다. 범위에는 세 가지 수준이 있습니다: 블록 , 기능 및 전역. 다음으로 JavaScript의 변수 승격에 대해 자세히 소개하겠습니다

JavaScript에서 변수 호이스팅을 이해하는 방법

[추천 강좌: JavaScript Tutorial]

예:

1

2

3

4

5

6

function exampleFunction() {

 var x = "declared inside function";

 console.log("Inside function");

 console.log(x);

 }

 console.log(x);

로그인 후 복사

Effect 그림:

JavaScript에서 변수 호이스팅을 이해하는 방법

위 예의 함수 범위에는 변수 x가 포함되므로 변수는 해당 함수 내에서만 알 수 있습니다. 전역 범위에서 액세스하면 x가 선언된 변수가 아니기 때문에 오류가 보고됩니다.

x 선언을 함수 외부로 이동하면 전역 범위에 있게 되며 함수 외부 또는 내부에서 사용할 수 있습니다.

Example

1

2

3

4

5

6

7

var x = "declared outside function";

exampleFunction();

function exampleFunction() {

 console.log("Inside function");

 console.log(x);}

 console.log("Outside function");

 console.log(x);

로그인 후 복사

Rendering:

JavaScript에서 변수 호이스팅을 이해하는 방법

ES6의 출현으로 변수를 승격시키는 두 가지 새로운 방법인 let 및 const 방법이 도입되었습니다. 이러한 방법을 사용하면 변수에 사용 가능한 범위를 보다 세밀하게 제어할 수 있습니다. let과 const로 정의된 지역 변수는 자신이 정의된 수준에서만 사용할 수 있습니다

Variable hoisting

아래 예에서 x는 var를 선언하고 x는 함수 전체와 하위에서 동일하게 호출됩니다. -블록 변수. x가 let 또는 const로 선언되면 외부 범위는 x에 액세스할 수 없습니다. let을 선언하면 bar가 범위의 맨 위로 승격되도록 선언합니다. 실제로는 다음과 같이 작동합니다:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

function varTest() {

 var x = 1;

 if (true) {

   var x = 2; 

   console.log(x); // 2

 }

 console.log(x); // 2

 }

 function letTest() {

 let x = 1;

 if (true) {

   let x = 2;

   console.log(x); // 2

 }

 console.log(x); // 1}

로그인 후 복사

이것이 console.log(bar) 결과가 정의되지 않고 console.log(foo)가 오류를 보고하는 이유입니다. 이렇게 하면 다음과 같은 일이 가능해집니다:

1

2

3

4

5

function doSomething() {

 console.log(bar); // undefined

 console.log(foo); // ReferenceError

 var bar = 1;

 let foo = 2;}

로그인 후 복사

및:

1

2

3

4

5

6

function doSomething() {

 var bar;

 console.log(bar); // undefined

 console.log(foo); // ReferenceError

 bar = 1;

 let foo = 2;}

로그인 후 복사

첫 번째 예에서는 var num이 할당 후에 선언되었지만 컴퓨터의 관점에서 볼 때 이전에 전역적으로 선언했음을 알아차리고 선언을 맨 위에 놓은 다음 나머지 코드를 계속 실행합니다. 두 번째 예에서는 함수를 정의하기 전에 호출/호출하더라도 정의가 범위의 맨 위로 끌어올려지므로 실제로 코드 실행을 시작할 때쯤이면 인터프리터는 그것이 무엇인지 이미 알고 있습니다 dogName() .

참고: var 변수의 경우 할당이 아닌 선언만 호이스팅됩니다. 요약: 위 내용은 이 글의 전체 내용입니다. 변수 개선을 학습하는 모든 분들께 도움이 되길 바랍니다.

위 내용은 JavaScript에서 변수 호이스팅을 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 Dec 17, 2023 pm 02:54 PM

WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법

WebSocket 및 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 WebSocket 및 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 Dec 17, 2023 pm 05:30 PM

WebSocket 및 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 Dec 17, 2023 am 09:39 AM

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 Dec 17, 2023 pm 12:09 PM

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법

JavaScript와 WebSocket: 효율적인 실시간 일기예보 시스템 구축 JavaScript와 WebSocket: 효율적인 실시간 일기예보 시스템 구축 Dec 17, 2023 pm 05:13 PM

JavaScript와 WebSocket: 효율적인 실시간 일기예보 시스템 구축

간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 Jan 05, 2024 pm 06:08 PM

간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법

자바스크립트에서 insertBefore를 사용하는 방법 자바스크립트에서 insertBefore를 사용하는 방법 Nov 24, 2023 am 11:56 AM

자바스크립트에서 insertBefore를 사용하는 방법

JavaScript에서 HTTP 상태 코드를 쉽게 얻는 방법 JavaScript에서 HTTP 상태 코드를 쉽게 얻는 방법 Jan 05, 2024 pm 01:37 PM

JavaScript에서 HTTP 상태 코드를 쉽게 얻는 방법

See all articles