ECMAScript에서 소스코드는 4가지로 평가된다.

4가지 타입의 코드는 실행 컨텍스트를 생성하게 된다.

  1. global code : 전역에 존재하는 코드를 의미한다.

  2. function code : 함수 내부에 존재하는 코드를 의미한다

  3. eval code : eval함수에 인수로 전달되어 생성되는 코드를 의미한다.

  4. module code : 모듈 내부에 존재하는 코드를 의미한다

전역 코드의 생성 시점

전역 코드는 전역 스코포를 생성한다.

var키워드로 선언된 변수, 함수 선언문으로 정의된 함수를 전역 객체의 프로퍼티와 메서드로 바인딩하고, 전역객체와 연결한다.

전역 코드가 평가되면 -> 전역 실행 컨텍스트가 만들어진다

var value = 100;
console.log(window.value) //100

--전역 객체 window의 프로퍼티가 된 전역 변수 value --

함수 코드의 생성 시점

함수 코드는 지역 스코프를 만들고 지역변수, 매개변수를 관리한다.

또한 생성된 지역 스코프를 스코프체인과 연결해야 한다.

함수 코드가 평가되면 함수 실행 컨텍스트가 만들어진다

즉, 소스코드를 평가해서 실행 컨텍스트를 만든다!


🤨소스코드는 언제 평가되고 실행되는거죠?

자바스크립트는 소스코드의 평가소스코드의 실행 으로 소스코드를 처리한다.