실행 컨텍스트

1. 실행 컨텍스트란?

  • JS 코드가 실행되고 있는 컨텍스트(환경)를 제공하는 객체입니다.
  • 실행할 코드에 대한 정보를 가지고 있습니다.

2. “실행할 코드'와 콜스택 (=실행스택 = Excution Stack)

  • 함수가 실행될 때마다 Call Stack이 쌓이고 끝나면 나가고 이런 방식으로 이루어 집니다.

3. 실행할 코드

  • 전역 코드
    • 전역 영역에 존재하는 코드는 전역 컨텍스트가 생성됩니다.
    • 콜스택에 전역 컨텍스트는 하나만 가지고 있습니다.
    • 자바스크립트 파일이 실행되면 가장 먼저 전역 컨텍스트부터 활성화됩니다.
  • 함수코드
    • 함수 내에 존재하는 코드를 실행하기 위한 함수 컨텍스트
  • eval코드
    • eval함수로 실행되는 코드를 위한 실행 컨텍스트
    • 요즘에 잘 쓰지 않습니다.

4. 컨텍스트에 담기는 정보

실행 컨텍스트 정보

  • VariableEnvironment: 변수 객체(Variable Object)
    • 변수 정보를 저장합니다.
  • LexicalEnvironment
    • Environment Record
      • 변수와 함수 선언등을 저장합니다.
      • 코드가 실행되기 전에 정보를 모두 수집합니다.
      • 자바스크립트 엔진은 실행되기 전에 코드의 변수명을 모두 알고 있습니다. → hoisting
      • 해당 변수가 어떤 값을 할당했는지는 관심있지 않습니다.
    • Outer
      • 다른 LexicalEnvironment를 참조하기 위함입니다.
        • scope 탐색
        • (바깥에 있는 Lexical에는 어떤 것이 있는 지 찾습니다.)
  • ThisBinding
    • 현재 컨텍스트의 this가 어디를 가르치는지 확인합니다.
Last modified: 2022년 02월 22일

Comments

Write a Reply or Comment

Your email address will not be published.