실행컨텍스트에 대해 아는 만큼 설명해주세요.
(자바스크립트 코드 동작의 근간을 담고 있는 중요 개념)
실행컨텍스트란 코드가 실행될때 생성되는 환경을 의미하며, 여기에는 코드가 실행되는 데 필요한 정보들 크게 3가지로 변수객체, 스코프체인, this 정보값이 있습니다.
종류는
처음 스크립트 실행시 자동으로 생성되는 Global 컨텍스트와, 함수가 호출될 때마다 생성되는 함수 컨텍스트 2가지가 있습니다.
이 실행컨텍스트들은 생성된 후 콜스택이라는 자료구조에 저장되어 LIFO 형태로 관리됩니다.
함수 실행 중에 사용 되는 변수들을 변수 객체 안에서 값을 찾고 값이 존재하지 않는다면 Lexical 환경의 outerEnvironmentReference를 통해 Scope 체인을 따라 올라가면서 탐색합니다.
함수 실행이 마무리가 되면 해당 컨텍스트는 사라지고, 맨 마지막에 global 컨텍스트가 콜스택에서 사라집니다.
자바스크립트 코드 동작의 근간은 실행 컨텍스트를 통해 코드를 관리하고, 이를 통해 변수, 함수, 스코프, this 값 등을 추적하여 동적인 환경에서 코드를 실행하는 것이다.