01_실행컨텍스트
1. 개념
실행할 코드에 제공할 환경정보를 모아놓은 객체
동일한 환경에 있는 환경 정보들을 모은 실행컨텍스트를 콜스택에 쌓아올린 후 실행한다.
2. 역할 및 기능
코드의 환경과 순서를 보장
FILO 구조이기 때문에 순서를 보장
내부에 쌓인 정보를 통해 환경을 보장 (전역 공간 or 함수 내부의 환경 like closure)
(ex) 전역(Global) 컨텍스트:
JS가 실행되는 순간 콜스택에 담김
browser에서 window.~, node의 경우 global.~를 사용할 수 있는 이유
3. 내용
변수 환경(Variable Environment):
그대로 Lexical Environment(문법 환경)에 복사
내부의 식별자 정보(Environment Record)
외부 환경 정보(Outer Environment Reference)
문법 환경(Lexical Environment):
변수 환경 복사 후 변경사항이 실시간으로 적용됨
변수 환경의 초기 상태를 기억
문법 환경의 최신 상태를 저장
식별자 정보(Environment Record):
현재 컨텍스트와 관련된 식별자와 식별자에 바인딩된 값이 기록됨
실행컨텍스트 내부 전체를 처음부터 끝까지 확인하며 순서대로 수집
호이스팅의 원인!!!
함수 실행시 실행 컨텍스트가 먼저 생성되므로
Environment Record 즉 식별자 수집이 먼저 되므로
변수와 같은 식별자를 끌어올리는 것 같다. 는 호이스팅이라는 현상이 생겼습니다.
외부 환경 정보(Outer Environment Reference):
스코프 체인, 클로저를 가능케하는 요소
현재 함수가 선언될 당시의 실시간 문법 환경(Lexical Environment)
ThisBinding:
실행 컨텍스트 생성 시, 즉 함수가 호출될 때 할당되는 this의 정보를 담고 있음
Last updated