Pko

js 호이스팅 본문

language/js

js 호이스팅

pastko 2021. 7. 3. 02:48

 호이스팅 ( Hosisting ) 

 

 

호이스팅(hoisting)은 ECMAScript® 2015 언어 명세 이후로 사용된 용어이다. JavaScript에서 실행 콘텍스트(특히 생성 및 실행 단계)가 어떻게 동작하는가에 대한 설명이다.

 

 

  자바스크립트 함수는 실행되기 전에 함수 안에 필요한 변수값들을 모두 모아서 유효 범위의 최상단에 선언한다.

 해당 함수를 확인하고 함수 안에 존재하는 변수/함수선언에 대한 정보를 기억하고 있다가 실행시킨다.

 

 

즉, 함수 내에서 사용되는 변수/함수 선언 정보를 다른 코드보다 우선적으로 선언함으로서 변수/함수를 사용하는데 문제가 없도록 하기 위한 작업으로 볼수 있다.

실제로 코드가 끌어올려지는 건 아니며, 자바스크립트 Parser 내부적으로 끌어올려서 처리하는 것 임으로 실제 메모리에서는 변화가 없다.

 

 

예를 들어

console.log( hoistingFunction());  // 'Heloo word'


function hoistingFunction()
{
   return 'Hello word';
}

위의 코드내 hoistingFunction()함수의 선언이  함수 호출 보다 뒤에 있기 때문에 오류가 발생되는 것이 일반적이다.

그러나 호이스팅 동작으로 실행전 함수 선언부을 끌어올려 함수 선언하였기 때문에 정상적으로 함수 선언 => 함수 호출 과정으로 동작되는 것이다. 

 

호이스팅 동작 우선순위는 함수 선언보다 변수 선언이 우선시 된다

 

 

 

 

 

 

 

 

- 참조

 

https://developer.mozilla.org/ko/docs/Glossary/Hoisting

 

Hoisting - 용어 사전 | MDN

호이스팅(hoisting)은 ECMAScript® 2015 언어 명세 및 그 이전 표준 명세에서 사용된 적이 없는 용어입니다. 호이스팅은 JavaScript에서 실행 콘텍스트(특히 생성 및 실행 단계)가 어떻게 동작하는가에 대

developer.mozilla.org

https://gmlwjd9405.github.io/2019/04/22/javascript-hoisting.html

 

[JavaScript] 호이스팅(Hoisting)이란 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://ojava.tistory.com/144

 

[javascript] 호이스팅 (hoisting) 이란?

호스팅(hosting)은 많이 들어봤는데 호이스팅(hoisting) 은 생소한 단어였다. 호이스팅의 개념은 javascript 변수 범위를 설명하면서 자주 언급되었는데 오늘 해당 용어의 의미와 어떤 개념인지 확인해

ojava.tistory.com

 

'language > js' 카테고리의 다른 글

Strict mode & Sloppy mode  (0) 2021.07.20
js - Array  (0) 2021.07.06
js - 클로저  (0) 2021.07.01
js 자료형  (0) 2021.07.01
js - 조건문  (0) 2021.06.15