본문 바로가기

개발개발

실행컨텍스트 정리

실행컨텍스트 유형

  • 전역 실행 컨텍스트
    기본 실행 컨텍스트로써 window 전역 컨텍스트를 생성하고, 이 전역객체를 this에 바인딩함.
  • 함수 실행 컨텍스트
    함수가 호출될때 마다 해당 함수에 대한 실행 컨텍스트가 생성됨.
  • eval 실행 컨텍스트
    eval 함수에서 실행되는 코드도 실행 컨텍스트를 가짐. eval()은 사용안하는게 좋으니까 생각하지말자.

    실행 스택

  • 콜스택이라고 불리는 그것
  • LIFO 구조

    실행 컨텍스트 생성 과정

  1. 생성단계(Creation Phase)
    1. Lexical Environment 생성
      각 변수(let, const),함수의 식별자에 실제 값, 객체에 대한 매핑이 이루어짐. Lexical Environment 에는 3개의 구성요소가 있음
      1. Environment Record
        변수 및 함수 선언이 저장됨. 이또한 2가지 유형으로 나뉨
        • Declarative environment record : 함수 코드의 Lexical Environment에서는 선언적 환경 레코드가 포함됨
        • Object environment record : 전역 코드의 Lexical Environment에서는 객체 환경 레코드가 포함됨
      2. Reference to the outer environment
        현재의 Lexical Environment에서 변수를 찾지 못하면 외부 환경에서 해당 변수를 찾을 수 있도록하는 참조
      3. This binding
        this의 값이 설정됨.
    2. Variable Environment 생성
      Lexical Environment와 동일함. 단, 변수는 var에 대해서만 맵핑이 이루어짐
  2. 실행단계(Execution Phase)

'개발개발' 카테고리의 다른 글

yarn berry에 github package 적용하기  (0) 2023.09.22
@RequestMapping 의 비밀  (0) 2022.05.13
문자열 해싱  (0) 2020.08.30
선언형 프로그래밍이란 무엇일까?  (0) 2020.08.17
타입 스크립트에서 배열과 튜플  (0) 2020.03.11