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 값을 내놓으면 그때 콜 스택에서 실행 컨텍스트가 제거된다. 그렇게 진행되어 결국 전역 실행 컨텍스트가 실행되어 끝나면 실행과정이 끝나고 브라우저를 종료 하기 전까지는 종료 되지 않고 콜백 함수를 기다린다.
댓글
댓글 쓰기