JavaScript - Execution Contexts and The Call Stack

신동환·2022년 4월 1일

js

목록 보기
8/18

WHAT IS AN EXECUTION CONTEXT?

  • JavaScript가 실행되는 환경
  • 일부 코드를 실행하는데 필요한 모든 정보를 저장하는 곳
  1. global execution context를 생성한다 (최상위 코드용)

    최상위 코드(top-level code)는 기본적으로 다른 코드입니다. (함수 내부에 존재하지 않는다)

  2. 그리고 실행 중에는 함수 외에 코드만 실행된다 (함수는 호출 될때만 실행된다)

    예로 볼 수있는 PIG GAME PROJECT를 보면 알 수 있다 (INITIALIZE FUNCTION)

// 명백한 top-level code
const name = 'Jonas';

const first = () => {
	let a = 1;
    const b = second();
    a = a + b;
    return a;
};

function second() {
	var c = 2;
    return c;
}
  1. 최상위 코드를 실행한다 (global execution context 내부)
  2. 함수 실행 및 콜백 대기

    각 함수 호출에 대해 새로운 execution context가 생성된다

WHAT'S INSIDE EXECUTION CONTEXT?

  1. 변수
  • let, const and var
  • functions
  • arguments obejct
  1. scope chain
  2. this keyword

    변수, scope chain, this keyword를 통틀어 creation phase라 부른다

const name = 'Jonas';

const first = () => {
	let a = 1;
    const b = second(7, 9);
    a = a + b;
    return a;
};

function second(x, y) {
	var c = 2;
    return c;
};

const x = first();

Global
name = 'Jonas'
first = function
second = function
x = unknown

first()
a = 1
b = unknown

second()
c = 2
arguments = [7, 9]

profile
안녕하세요! Hello, World!

0개의 댓글