Execution Context
내부에서 실행되고 있는 것이다.자바스크립트 엔진에서 코드를 실행하기 위해서는 실행에 필요한 정보를 알고있어야한다.
Execution Context
의 종류Global Context
Global Context
에서 실행된다.실행컨텍스트
가 생성이 된 후 global object로 window가 this로 할당되고 스택에 쌓이게된다.전역컨텍스트
안에 포함되는 모든 코드들의 실행 가능한 코드들은 순서대로 스택에 쌓이게 되며 LIFO(Last In First Out)으로 함수를 실행하게 된다.Functional Context
함수컨텍스트
를 가지지만 함수가 호출인 되어야만 생성이된다.Execution Context
의 3가지 객체실행컨텍스트는 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념이지만 물리적으로는 객체의 형태를 가지며 3가지 프로퍼티를 소유한다.
Variable Object
전역컨텍스트
와 함수가 호출될때 생성되는 함수컨텍스트
의 경우 값들이 가리키는 객체가 다르다함수컨텍스트
에는 parameter와 arguments가 들어있기 때문에 벌어지는 차이점하위 -> 상위 -> 전역
참조에 실패한다면 스코프 체인에 담겨진 순서대로 계속해서 이어가는 것이다.실행컨텍스트란 ?
- 실행 가능한 코드를 형상화하고 구분하는 추상적 개념
- 코드들이 실행되기 위한 환경
- 코드가 실행된다면 실행컨텍스트 내부에서 실행하고 있는것
실행컨텍스트의 종류
1.전역컨텍스트
- 스택구조
- this -> window 할당
함수컨텍스트
선언된 함수가 호출되면 함수컨텍스트가 생성된다.
함수의 모든 동작이 종료되면 소멸
but 클로저 사용시 스코프가 소멸하지 않고 이용
실행컨텍스트의 3가지 객체
- 변수객체
- 실행컨텍스트가 생성되면 js엔진은 실행에 필요한 정보들을 담을 객체를 생성한다. -> 호이스팅과 연관
- 전역컨텍스트와 함수컨텍스트는 arguments 차이점을 가진다.
<구성>
- arguments / parameter
- variable
- 함수선언(표현식 제외)
- 스코프체인
- 스코프체인은 실행컨텍스트가 참조할 수 있는 변수, 함수선언 등의 정보를 담고 있는 리스트다.
- js엔진은 스코프체인을 통해 렉시컬 스코프를 파악한다.
- 전역 스코프를 참조할 수 있는 이유는 스코프체인이 검색을 하기 때문
- this