[프론트엔드 면접]실행 컨텍스트(execute context)란?

else·2023년 9월 10일
1

CS

목록 보기
9/10

실행 컨텍스트(excute context)란?

  • 실행할 코드에 대해 제공할 환경 정보들을 모아놓은 객체
  • 자바스크립트 코드가 평가되고 실행되는 환경
  • LIFO(Last In First Out) 스택 구조로 콜 스택에 쌓이며 실행 순서를 보장

실행 컨텍스트(excute context)는 언제 생성?

  • 전역 컨텍스트
    • 자바 스크립트 파일이 로드될 때 전역 컨텍스트가 생성됨
    • 이는 종료될 때까지 실행
  • 함수 컨텍스트
    • 함수가 호출 될때 마다 그 함수의 컨텍스트가 각각 순차적으로 쌓임
  • eval()
    • 문자열로 된 스크립트 코드를 실행하는 함수
    • 보안적 취약하기 때문에 요즘엔 안씀 (evail is evil)

실행 컨텍스트(excute conetext)의 구성

  • 변수 환경(Variable Environment)
    • var로 선언된 변수와 함수 선언식으로 정의된 함수들, 그리고 this 값 등이 저장
    • 최초 실행시의 스냅샷을 유지한다 (변경 사항을 반영하지 않는다)
  • 렉시컬 환경(Lexical Environment)
    • 변수환경(Variable Environment)의 정보를 복사해서 저장
    • 실시간으로 변경된 정보가 반영
    • let, const 키워드로 선언된 변수와 함수 표현식으로 정의된 함수들,그리고 렉시컬 스코핑에 따른 외부 환경 참조 등이 저장
    • environmentRecord
      • 변수와 함수 선언을 저장
    • outerEnvironmentReference(Reference to the outer environment)
      • 현재 환경에서 변수에 대한 정보를 찾지 못한다면 외부의 환경에서 정보를 찾을 수 있음
    • this 바인딩(This Binding)
      • 현재 실행 컨텍스트에서 this가 참조하는 객체를 나타냄
      • 지정 하지 않을 시 global
profile
피아노 -> 개발자

0개의 댓글