Execution Context ( ⊃ Hoisting 개념 )
Execution Context(실행 컨텍스트)는 코드를 실행할떄 필요한 환경 정보들을 담은 객체이다.
동일한 환경에 있는 코드들을 실행할떄, 필요한 환경 정보들을 모아 context를 구성하고, 이를 call stack에 올렸다가, 가장 위에 쌓여있는 context와 관련있는 코드들을 실행하는 식으로 전체 코드의 환경과 순서를 보장한다.
(stack 자료구조에서 LIFO 을 생각하면 이해가 간편한다.)execution context 는 함수를 실행할떄 구성된다.
+) ES6 부터는 let,const block scope가 추가되었다.