실행 컨텍스트 (Execution Context)
자바스크립트 코드가 실행될 때 생성되는 개념으로, 코드의 실행 환경에 관한 정보를 담고 있다.
최근 면접에서 계속 나왔던 질문 중 하나였던, 실행 컨텍스트에 대해 도대체 뭘까 싶어서 찾아보게 되었다.
하지만 찾아본 결과 이미 내가 들어봤던 내용이여서 대혼란이였다... 🫠
키워드로 나누어보면 다 내가 알고 있던 내용들이였기 때문이다.
간단하게 키워드로 정리를 하자면 다음과 같다.
자바스크립트 하면 꼭 나오는 내용들이다. 그만큼 저 내용이 핵심이라는 뜻이겠지?
다음 기술 면접에 대비해서라도 한번 더 상기시킬겸 각각에 대해 다시한번 정리해 보겠다.
전역 실행 컨텍스트
어플리케이션이 시작될 때 생성된다.
전역 변수 및 함수 선언이 포함된 전역 객체가 Variable Object(변수 객체)로 생성된다.
Scope Chain(스코프 체인)은 자기 자신만을 가지며, this는 전역 객체를 참조한다.
함수 실행 컨텍스트
함수가 호출될 때마다 새로운 실행 컨텍스트가 생성된다.
해당 함수의 지역 변수, 매개변수, 함수 선언이 Variable Object로 생성된다.
Scope Chain은 현재 실행 컨텍스트의 변수 객체와 외부 컨텍스트의 변수 객체를 연결한다.
this는 함수가 호출될 때 동적으로 결정된다.
Eval 함수 실행 컨텍스트
Eval은 생소하게 느껴지는데, 이는 eval 함수를 실행할 때 생성되는 컨텍스트이다. 일반적으로 사용을 권장하지 않는다.
실행 컨텍스트는 코드 실행의 기본 단위이며, 스코프, 변수, 함수, this 등을 효과적으로 관리하여 정확한 실행을 보장한다.