자바스크립트의 실행 컨텍스트를 이해하면 scope, hoisting, closure 등 자바스크립트의 주요한 동작을 이해할 수 있음.
실행 컨텍스트는 순전히 자바스크립트 스펙을 위한 메커니즘이라 직접 접근해서 확인 어렵.
실행컨텍스트의 구성을 볼게요.
이중에서 두가지만 집중해서 볼텐데
실행컨텍스트 안에 있는 Record와 Outer.
첫째, Record를 통해 자바스크립트의 호이스팅을 이해하고
둘째, Outer를 통해 자바스크립트의 스코프체이닝을 이해한 후
마지막으로, 실행컨텍스트에 대해 종합 정리하고 마무리하겠습니다.
자바스크립트 코드를 실행시키면 자바스크립트 엔진은 콜 스택이라는 통에 전역 실행컨텍스트를 담음.
실행컨텍스트니까 안에 아까봤던 Record와 Outer가 담겨있음.
만약 전역 A에서 함수를 호출할 경우, 함수A의 실행 컨텍스트를 생성해서 또 콜 스택에 담음.
콜스택에서는 가장 최근에 추가된 실행 컨텍스트만 활성화됨.
그러니까 위에서 내려다봤을때 보이는 실행 컨텍스트가 활성화된 실행 컨텍스트이고,
현재 활성화된 실행컨텍스트는 함수A의 실행컨텍스트임.
만약 함수A에서 함수B가 호출되면 또 실행 컨텍스트를 담음.
함수B의 실행을 마치고 함수B가 종료되면, 실행컨텍스트가 사라짐.
그러면 함수A로 돌아올수 있겠죠. 이어서 함수 A가 종료되면 이 실행 컨텍스트도 사라짐.
이제 본론.
1. Record로 호이스팅을 이해하기.
다음과 같이 TV Channel이라는 변수를 선언하고 Netflix를 항당했을때
선언 이후 TV Channel값 출력해보면 예상한대로 netflix 찍힘
'메모장' 카테고리의 다른 글
failed to push some refs to 에러 (0) | 2023.03.27 |
---|---|
console.log와 return의 차이알기 (0) | 2023.02.09 |
NPM이란 무엇이며 어떻게 작동할까요? (0) | 2022.11.23 |
HTML ,CSS, Javascript 개념정리 (0) | 2022.10.26 |