Q Javascript의 호이스팅에 대해 설명해주세요.
Keword : *실행 컨텍스트, 변수, 함수선언부가 '끌어올려짐'
A
자바스크립트 호이스팅은 인터프리터가 코드를 실행하기 전에 변수 선언, 함수선언이 해당 스코프의 최상단으로 끌어 올려진 것 같은 현상을 말합니다.
자바스크립트 엔진은 코드를 실행하기 전, 실행컨텍스트를 위한 과정에서 모든 선언을 스코프에 등록합니다.
실행 가능한 코드를 형상화하고 구분하며, 코드 실행 전에 변수 선언 및 함수선언을 저장해 선언문보다 참조, 호출이 먼저 나와도 오류없이 동작합니다.
*실행컨텍스트: 실행 컨텍스트는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체입니다.
즉, 실행 가능한 코드가 실행되기 위해 필요한 환경을 의미합니다. 자바스크립트는 동일한 환경에 있는 환경 정보들을 모은 실행 컨텍스트를 콜스택에 쌓아올린 후 실행하여 코드의 환경과 순서를 보장할 수 있게 됩니다.