자바스크립트 호이스팅
자바스크립트 핵심 개념· 3 / 9
environmentRecord
현재 컨텍스트와 관련된 코드의 식별자 정보들이 저장되는 객체로서 호이스팅에 의해 변수와 함수 선언이 객체 내부에 등록되어 코드 실행 시 해당 식별자들에 접근하고 수정하는 데 사용된다.
호이스팅(Hoisting) 규칙
자바스크립트 엔진은 식별자들을 ‘최상단으로 끌어올려 놓은(호이스팅)’ 다음 실제 코드를 실행한다. 이때 수집되는 정보의 성격별로 차이를 보인다.
-
매개변수와선언된 변수는 식별자(선언부)만 수집할 뿐 할당된 값(할당부)은 수집하지 않는다. 값은 해당 코드가 실행될 때 할당된다. -
함수는 그 자체를 수집한다.(코드 실행 순서 상 함수 선언 전에 그 함수를 미리 호출할 수 있는 이유) -
같은 식별자가 선언될 경우 후반에 선언된 식별자로 오버라이드된다. 변수와 함수의 식별자가 같은 경우에도 마찬가지다.