실행 컨텍스트

·2023년 1월 5일
0

개발 지식

목록 보기
2/96
post-thumbnail

실행 컨텍스트란?

키워드
콜스택, 코드 실행 시 필요한 환경 정보

실행할 코드에 제공할 환경 정보들을 모아놓은 객체.
실행 컨텍스트가 실행될 때 마다, 자동으로 콜스택에 쌓이게 된다. 보통 함수 호출에 의한 컨텍스트를 자주 보게 된다.
하나의 실행 컨텍스트에는, 다음과 같은 정보로 포함되어 있다.

  • variable environment
    • environment records : 현재 컨텍스트 내의 호이스팅 가능한 변수에 대한 정보
    • outer environment reference : 외부 환경 정보
  • lexical environment
    • environement records : let, const 로 선언된 변수, 함수표현식도 포함하여 저장
    • outer environment reference : variable environement 를 저장.
  • this binding : 실행 컨텍스트 안에서, 함수를 호출한 스코프에 접근할 수 있도록 도와주는 역할. 호출 위치에 따라 다르기 때문에, 유의하여 사용해야한다.

variable environmentlexical environment의 차이는 변화를 하는 가 하지 않는가의 차이라고 한다. 초기 variable environmentlexical environment 의 데이터는 동일하나 실행 컨텍스트 내에서 코드가 실행될 때, variable environment 는 절대 변하지 않고 lexical environment 의 값은 변화 할 수 있다고 한다.

역시 어렵다. 지금은 대략적으로 이런 게 있다 정도만으로 이해하고 가자.

var a = 1; // 전역 컨텍스트
function outer () { // outer 컨텍스트
  function inner () { // inner 컨텍스트
    console.log(a); // undefined
    var a = 3;
    console.log(a); // 3
  }
  inner();
  console.log(a); // 1
}
outer();
console.log(a); // 1
profile
새로운 것에 관심이 많고, 프로젝트 설계 및 최적화를 좋아합니다.

0개의 댓글