실행컨텍스트(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)

https://github.com/baeharam/Must-Know-About-Frontend/blob/master/Notes/javascript/execution-context.md

 

+ Recent posts