천천히 알아보는 코딩공부

javascript 기초 2 - 실행 컨텍스트 본문

JavaScript/기초

javascript 기초 2 - 실행 컨텍스트

고기고기물고기 2022. 5. 12. 06:54

실행 컨텍스트 개념

  -  ECMAScriprt 에서는 실행 컨텍스트를 "실행 가능한 코드를 형상화하고 구분하는 추상적인 개념"으로 기술한다.

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

 

console.log("This is global context");

function Excontext1() {
	console.log("this is Ex context1");
};

function ExContext2() {
	ExContext1();
    console.log("this is Ex context2");
};

ExContext2();

 

출력결과

This is global context
This is ExContext1
This is ExContext2

 

  •  실행 컨텍스트 생성 과정

     ※ 새로운 함수 호출이 발생하면 새로운 컨텍스트가 만들어지고 실행되며, 종료되면 반환된다.

 

      "This is global context 출력; -> ExContext2() 호출 ->  Excontext2() 실행 컨텍스트 스택 생성

       -> Excontext1() 실행 컨텍스트 스택 생성 -> This is ExContext1 출력 및 실행 컨텍스트 종료

       -> This is ExContext2 출력 및 실행 컨텍스트 종료

 

실행 컨텍스트 생성 과정

   1. 활성 객체 생성

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

        생성하는데, 이를 활성 객체라고한다.

ex ) Excontext2(); ---- 함수 호출시 활성 객체 생성

 

  

  2. arguments 객체 생성

     - 함수 호출시 활성 객체가 생성되는데 인수 정보(arguments) 표현한다.

ex ) function excute(param1, param2) // arguments -> param1, param2

 

 

  3. 스코프 정보 생성

    - 현재 실행중인 실행 컨텍스트 안에서 연결 리스트와 유사한 형식으로 만들어진다. 

    - 상위 실행 컨텍스트의 변수도 접근이 가능

 

  4. 변수 생성

     - 변수는 메모리에 생성하고, 초기화는 각 변수나 함수에 해당하는 표현식이 실행되기 전까지는 undefined가 할당 된다.

  5. this 바인딩

     -  this가 참조하는 객체가 없으면 전역 객체를 참조한다.

  6. 코드 실행

   - 하나의 실행 컨텍스트가 생성되고, 변수 객체가 만들어진 후에, 코드에 있는 여러가지 표현식 실행이 이루어진다.

   - 실행되면서 변수 초기화 및 연산, 또 다른 함수 실행 등이 이루어진다.

   - 전역 실행 컨텍스트는 argements 객체가 없으며 전역 객체 하나만을 포함하는 스코프 체인이 있다.

 

그림 출처 : https://velog.io/@jminkyoung/TIL-34-%EC%8B%A4%ED%96%89-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8Execution-Context-%EB%9E%80

'JavaScript > 기초' 카테고리의 다른 글

javascript 기초 1 - 함수(6)  (0) 2022.05.12
javascript 기초 1 - 함수(5)  (0) 2022.05.12
javascript 기초 1 - 함수(4)  (0) 2022.05.12
javascript 기초 1 - 함수(3)  (0) 2022.05.11
javascript 기초 1 - 함수(2)  (0) 2022.05.11
Comments