실행 컨텍스트가 무엇으로 이루어졌는지만 외웠는지, 아니면 그게 클로저·hoisting·this 바인딩 같은 다른 개념을 설명하는 뼈대라는 걸 보는지를 가르는 질문이다. 후속으로 "this는 왜 호출 방식마다 다른가" 같은 깊이 질문이 자연스럽게 이어진다.
실행 컨텍스트는 자바스크립트 엔진이 코드를 실행할 때 변수 객체·스코프 체인·this를 한 묶음으로 잡아두는 환경이다. 전역 컨텍스트는 프로그램 시작부터 끝까지 살아 있고, 함수 컨텍스트는 호출될 때마다 생기고 종료 시 사라지면서 콜 스택에 쌓인다. 변수 탐색은 현재 컨텍스트 → 외부 컨텍스트 순서로 스코프 체인을 타고, this는 컨텍스트 생성 시점의 호출 방식에 따라 결정된다. 결국 변수 접근 범위·hoisting·클로저·this 바인딩 같은 자바스크립트 핵심 동작이 모두 이 모델 위에서 설명된다.
this 바인딩 때문에 콜백에서 의도와 다른 값이 나온 경험이 있다면 컨텍스트 생성 시점을 짚는 설명으로 연결된다
hoisting이나 TDZ 때문에 변수가 예상과 다르게 동작한 적이 있다면 실행 컨텍스트 단계로 풀 수 있다
스코프 체인 디버깅으로 변수 출처를 추적해본 경험이 있다면 컨텍스트 간 변수 탐색 흐름을 구체적으로 설명할 수 있다
화살표 함수와 일반 함수의 this를 헷갈려본 적이 있다면 컨텍스트 결정 시점의 차이로 연결할 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.