JavaScript/3주차

6. 실행 컨텍스트 및 콜 스택 소개

tnals634 2023. 5. 24. 15:51

자바스크립트에서의 실행 컨텍스트란

 - 스코프, 변수, 객체, 호이스팅

 - 실행할 코드에 제공할 환경 정보 들을 모아놓은 객체

     - 1. 선언된 변수를 위로 끌어올리구요 = 호이스팅(hoisting)

     - 2. 외부 환경 정보를 구성하구요.

     - 3. this 값을 설정해요

=>이런 현상들 때문에 JS에서는 다른 언어랑은 다른 특징들이 나타난다.

 

1. 컨텍스트?

 - 스택을 이해해야함.

 

 

콜 스택 (call stack)

 - 실행 컨텍스트란 실행할 코드에 제공할 환경 정보들을 모아 놓은 객체

                              (△자신이 만든 코드)

 - 코드의 순서를 보장.

 - LIFO

 

 

컨텍스트 구성

 - 구성 방법

     - 1. 전역 공간

     - 2. eval() 함수

     - 3. 함수(우리가 흔히 실행컨텍스트를 구성하는 방법)

 

실행 컨텍스트 구성 예시 코드

//....1번
var a = 1;
function outer() {
    function inner() {
        console.log(a);
        var a = 3;
    }
    inner(); //...2번
    console.log(a);
}
outer(); // ... 3번
console.log(a);

순서

코드 실행 → 전역(in) → 전역(중단) + outer(in) → outer(중단) + inner(in) → inner(out) + outer(재개) → outer(out) → 전역(재개) → 전역(out) → 코드종료