-
[Javascript] Hoisting 호이스팅■ Front-End/- JavaScript & TypeScript 2019. 7. 23. 00:25
Hoisting이란?
함수를 선언하기 전에 호출하는 것.
예)
그런데 함수를 변수에 할당하여 호출하면 TypeError가 발생한다.
왜 이런 에러가 발생하는걸까?
먼저 자바스크립트 실행 과정을 알아야 한다.
자바스크립트는 코드를 해석하는 단계와 코드를 실행하는 단계로 나뉜다.
코드를 해석하는 단계에서는, 선언 문장을 초기화하면서 스코프를 형성한다.
실행하는 단계에서는, 값을 할당하거나 계산을 하는 행위를 한다.
해석 단계에서 hello2 변수를 선언하는 문장이 먼저 초기화 되면서 hello2 변수에는 undefined 값이 할당된다.
그래서 실행 단계에서 hello2(); 를 호출하면 undefined가 리턴된다.
'■ Front-End > - JavaScript & TypeScript' 카테고리의 다른 글
[Javascript] 비동기 처리 (0) 2020.01.30 [Javascript] this에 대하여 (0) 2019.07.23 [Javascript] Closure (0) 2019.06.22 [Javascript] 실행 컨텍스트(Execution Context) (0) 2019.06.21 [WEB] 세션(Session)과 쿠키(Cookie) (0) 2019.06.21