Front-end/JavaScript ES6
JS 호이스팅
1924
2022. 1. 12. 04:12
호이스팅이란?
변수나 함수 선언문 등 모든 선언문이 해당 스코프의
선두로 옮겨진 것처럼 동작하는 것을 말한다.
즉, js의 모든 선언문(var, let, const, function*, class)이 선언되기 이전에 참조 가능하다.
선언된 변수는 선언단계와 초기와단계가 한번에 이뤄진다.
즉, 스코프에 변수가 등록되고 변수는 메모리 공간을 확보한 후 undefined로 초기화한다.
따라서 변수 선언문 이전에 변수에 접근하여도 Variable Object에 변수가 존재하기 때문에
에러가 발생하지 않는다, 다만 undefined를 반환한다. 이러한 현상을 변수 호이스팅이라고 한다.