실행 컨텍스트

WOOSUNG·2021년 7월 28일
0

JS

목록 보기
1/5
post-thumbnail

실행 컨텍스트(Execution Context) 개념

  • 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념
  • 실행 가능한 자바스크립트 코드 블록이 실행되는 환경, 여기서 말하는 실행 가능한 코드 블록은 대부분의 경우 함수이다.

실행 컨텍스트가 형성되는 경우

  1. 전역 코드 -> 전역 실행 컨텍스트

  2. eval() 함수로 실행되는 코드

  3. 함수 안의 코드를 실행할 경우

    	대부분의 프로그래머는 함수로 실행 컨텍스트를 만든다.

현재 실행되는 컨텍스트에서 이 컨텍스트와 관련 없는 실행 코드가 실행되면, 새로운 컨텍스트가 생성되어 스택에 들어가고 제어권이 그 컨텍스트로 이동한다.

[예]

console.log("1");

function func1(){
  console.log("2");
}

function func2(){
  console.log("3");
}
func2();

실행 컨텍스트 생성 과정

  • 활성 객체(변수 객체)
  • 스코프 체인

실행 컨텍스트가 생성되면 자바스크립트 엔진은 해당 컨텍스트에서 실행에 필요한 여러 가지 정보를 담을 객체를 생성한다. -> 변수, 매개변수, 객체 ...

변수 생성

  1. 호출된 함수 인자는 각가긔 프로퍼티가 만들어지고 값이 할당된다.
    (없을 경우에는 undefined이 할당)
  2. 실행 컨텍스트 안에 정의된 변수와 함수가 생성된다. 단, 이 과정에서 변수나 내부 함수를 단지 메모리에 생성만하고, 초기화는 표현식이 실행되기전까지는 이루어지지 않는다.
  3. this binding(object), 없을 경우에는 전역 객체를 참조

0개의 댓글