최상위 코드(top-level code)는 기본적으로 다른 코드입니다. (함수 내부에 존재하지 않는다)
예로 볼 수있는 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;
}
각 함수 호출에 대해 새로운 execution context가 생성된다
변수, 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]