JAVASCRIPT EXCUTION CONTEXT

자바스크립트의 excution context(실행 컨텍스트)에 대해 알아보자!

 자바스크립트가 컴파일이 끝났고 이제 실행될 준비 가 되었다.

자바스크립트는 top-level code (함수가 들어있지 않은 코드)를 만들기 위해 가장 먼저 global excution context 를 만든다.


여기서 excution context 실행 컨텍스트에 대해 알아보자.


실행 컨텍스트는 자바스크립트가 실행되는 한 조각의 환경이다. 이곳엔 자바스크립트의 코드 뿐만 아니라 실행되기 위해 필요한 정보들을 담고 있다. 

전역 실행 컨텍스트에 탑 레벨 코드의 정보가 담기고 나면 코드가 실행되는데,함수 내부의 코드를 제외한 모든 코드가 실행되고 나면 그때 함수들이 실행되게 된다.

각각의 함수는 각각의 실행 컨텍스트를 가지며 실행 될때 마다 call stack 에 쌓이게 된다. 모든 함수가 실행되면 이벤트 루프가 콜백(클릭 이벤트) 큐 에서 콜백 함수가 콜 스택에 보내 주기를 기다린다.


실행 컨텍스트의 구성에 대해 알아보자

 -- Variable Environment(변수 환경)

let, const,var 로 선언한 변수들(declarations)

함수들 (functions)

Arguments 객체 (함수가 실행되는데 필요한 인자를 객체 형태로 저장한다.)

-- 스코프 체인(Scope Chain)

현재 함수의 바깥쪽을 참조하는 변수들의 영역

--this 키워드


화살표형 함수는 인자가 없으므로 argument 객체 그리고 this 키워드가 없다는 걸 명심하자.

단, 가까운 정규함수 (regular function) 부모로부터 객체와 this 키워드를 사용할 수 있다.



콜 스택에선 실행 컨텍스트가 쌓여 , 현재 어떤 코드가 실행되고 있는지 알 수 있는 공간이다. 함수 실행 컨텍스트가 return 값을 내놓으면 그때 콜 스택에서 실행 컨텍스트가 제거된다. 그렇게 진행되어 결국 전역 실행 컨텍스트가 실행되어 끝나면 실행과정이 끝나고 브라우저를 종료 하기 전까지는 종료 되지 않고 콜백 함수를 기다린다.
















댓글

이 블로그의 인기 게시물

Javascript this keyward

Javascript Object vs Primitives (Primitives vs reference type)

javascript 15 switch statement