4가지 타입의 코드는 실행 컨텍스트를 생성하게 된다.
global code : 전역에 존재하는 코드를 의미한다.
function code : 함수 내부에 존재하는 코드를 의미한다
eval code : eval함수에 인수로 전달되어 생성되는 코드를 의미한다.
module code : 모듈 내부에 존재하는 코드를 의미한다
전역 코드는 전역 스코포를 생성한다.
var키워드로 선언된 변수, 함수 선언문으로 정의된 함수를 전역 객체의 프로퍼티와 메서드로 바인딩하고, 전역객체와 연결한다.
var value = 100;
console.log(window.value) //100
--전역 객체 window의 프로퍼티가 된 전역 변수 value --
함수 코드는 지역 스코프를 만들고 지역변수, 매개변수를 관리한다.
또한 생성된 지역 스코프를 스코프체인과 연결해야 한다.
함수 코드가 평가되면 함수 실행 컨텍스트가 만들어진다
자바스크립트는 소스코드의 평가
, 소스코드의 실행
으로 소스코드를 처리한다.