Languages/JavaScript
[JavaScript] 호이스팅(Hoisting)
호이스팅(Hoisting)이란 자바스크립트 인터프리터가 변수와 함수 안에 있는 선언들을 모두 해당 함수 유효 범위의 최상단에 선언하는 것을 말한다. 하지만 주의해야 할 점은 실제로 위치가 옮겨지는 것이 아니라 그렇게 된 것처럼 실행이 된다는 뜻이라는 것을 염두에 두어야 한다. 즉, 선언이 코드 실행보다 먼저 메모리에 저장되는 과정으로 인해 야기되는 현상이다. 변수가 생성되는 절차는 아래와 같다. 1단계: 선언 단계(Declaration phase) - 변수를 실행 컨텍스트의 변수 객체에 등록한다. - 이 변수 객체는 스코프가 참조하는 대상이 된다. 2단계: 초기화 단계(Initialization phase) - 변수 객체에 등록된 변수를 위한 공간을 메모리에 확보한다. - 이 단계에서 변수는 undefi..