코드를 실행할 때 필요한 환경정보들을 모아놓은 것
컨텍스트가 활성화되는 시점에
호이스팅 발생
외부 환경 정보 구성
this값 설정
실행과 동시에 전역 컨텍스트가 수집되고 그 다음 순차적으로 함수가 호출되면 그 함수의 정보를 수집한 후
실행 컨텍스트를 생성하고 모든 작업이 끝났을때 전역 컨텍스트가 종료된다.
최초 실행시의 스냅샷을 유지한다.
Lexical Environment은 environmentRecord와 outerEnvironmentReference로 구성되어 있다.
environmentRecord - 호이스팅에 관여
outerEnvironmentReference - 스코프와 스코프체인에 관여
이벤트 루프 관련 공부할 때 나왔던 개념인데 자바스크립트는 싱글 콜스택 언어므로 한번에 하나의 함수만 처리할 수 있다.
함수 내부에 함수가 호출되면 이전에 호출되었던 콜스택 위에 쌓이고를 반복한다.
전역 컨텍스트는 js의 실행과 동시에 콜스택으로 보자면 맨 아래 포지션에 있는 그런 정보(실제 콜스택은 아님)
정리해보자면 자바스크립트가 런타임에 들어가기전 호이스팅이 발생하고 전역 컨텍스트가 수집된다.
런타임 도중 함수의 호출에 해당 함수의 실행 컨텍스트가 생성되고 그 함수가 끝나면 순차적으로
나머지 코드를 이어서 실행한다. 모든 작업이 끝나면 전역 컨텍스트가 종료된다.