실행컨텍스트(Execution Context)
-
코드의 실행환경에 대한 여러가지 정보를 담고 있는 개념
-
자바스크립트 엔진에 의해 만들어지고 사용되는 코드 정보를 담은 객체의 집합
-
글로벌스코프, 함수스코프 등.. 스코프의 코드는각각의 실행 컨텍스트를 생성한다.
-
글로벌 스코프는 실행 이전에 생성되지만, 함수스코프는 함수 호출 시 생성된다.
-
글로벌 스코프는 코드를 실행하기 전에 쌓이고 모든 코드를 실행하면 제거된다.
-
실행 컨텍스트가 생성되면 흔히 콜 스택(Call Stack)이라고도 불리는 실행 컨텍스트 스택에 쌓이게 된다.
구성요소
-
어휘 환경(Lexical Environment)
-
변수 및 함수 등의 식별자(Identifier) 및 외부 참조에 관한 정보를 가지고 있는 컴포넌트
-
구성요소
-
Environment Record (식별자에 관한 정보)
-
outer 참조 (외부 Lexical Environment를 참조하는 포인터)
-
변수 환경(Variable Environment)
-
var 로 선언된 변수만 저장한다.
-
var 로 선언된 변수를 제외하고 나머지(let 으로 선언되었거나 함수 선언문)를 저장
-
this 바인딩
-
this 객체에 어떻게 바인딩이 되는지를 나타낸 것
-
글로벌스코프
-
글로벌 객체로 바인딩되며(브라우저 window, 노드 global) strict mode라면 undefined
-
그 외
-
함수가 어떻게 호출되었는지에 따라 바인딩
과정
-
생성단계
-
값이 변수에 매핑되지 않는다
-
구성
-
Lexical Environment 생성
-
Variable Environment 생성
-
this 바인딩
-
실행단계
취준생이 반드시 알아야 할 프론트엔드 지식들
https://github.com/baeharam/Must-Know-About-Frontend
실행컨텍스트(Execution Context)