함수 앞에서 함수를 호출하는 것을 호이 스팅이라고 한다.
함수 선언문은 초기화 단계에서 함수 오브젝트를 생성하기 때문에 어디에서도 호출할 수 있다.
let foo = hoistingFn();
console.log(foo); // Hoisting
function hoistingFn(){
return "Hoisting";
}
이것은 function과도 같은 것인데 처음에 선언문을 찾고 그것을 object화 시키며 등록한다
그다음 foo 변수를 초기화하고 마지막으로 실행 함수를 실행시킨다. 그렇기 때문에 오류 발생하지 않고 해석할 수 있는 것이다.
let foo = hoistingFn();
console.log(foo); // Hoisting
function hoistingFn(){
return "Hoisting";
};
hoistingFn = function(){
return "호이스팅";
}
js가 초기화 단계에서 이전에 값이 있다면 초기화하지 않는다.
'갬발자의 프로그래밍 > Javascript' 카테고리의 다른 글
prototype (0) | 2019.12.23 |
---|---|
Execution Context (0) | 2019.12.23 |
Argument 처리 형태 (0) | 2019.12.22 |
function (0) | 2019.12.20 |
스코프 결정 시점 과 함수레벨스코프 (0) | 2019.12.20 |
댓글