Pko
js 호이스팅 본문
호이스팅 ( 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
[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 |