∞. 기술 면접/8. 자바스크립트
09. 기술면접 - 자바스크립트 - 호이스팅 (Hoisting)
THE HEYDAZE
2021. 10. 22. 16:10
공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다
호이스팅 (Hosting)
- Hosting(끌어 올리다) 이란 선언한 함수와 변수를 해석기가 가장 상단에 있는 것 처럼 인식한다
- JS 해석기는 코드의 라인 순서와 관계 없이 함수 선언식(함수 표현식 X)과 변수를 위한 메모리 공간을 먼저 확보
- 따라서, function a() 와 var 는 코드의 최상단으로 끌어 올려진 것 (hostied) 처럼 보인다
function a() {
return 10;
}
a(); // 5
function a() {
return 5;
}
순서대로 동작했다면 a 는 10이 출력되어야 하는 데, 해석기가 함수실행보다 선언을 먼저 인식하기 때문에 a는 재정의 되어서 5가 된다
function a() {
return 10;
}
a(); // 10
var a = function a() {
return 5;
}
a(); // 5
함수 표현식으로 작성을 하게 되는 경우 호이스팅은 적용되지 않아 작성한 순서대로 출력되는 것을 볼 수 있다