1. JavaScript 코드 처리 로직과 필수 모듈

1. V8엔진
- V8엔진은 싱글스레드로 동작한다.
- JavaScript는 인터프리팅 언어이다. V8엔진은 JavaScript코드를 해석하고 실행한다.
- callstack에 쌓인 호출된 함수들을 순차적으로 실행한다.
- 기본적인 변수, 객체등을 관리한다.
2. Web APIs
- V8엔진은 싱글스레드 이므로 한번에 한가지 동작만 가능하다.
- 정해진 함수를 제공 받아 비동기적 제어 흐름을 가질수 있다.
- 이때 정해진 함수들은 callstack에 쌓인후 Web API모듈로 이동해서 Web API들의 도움을 받아 처리가 된다.
- 정해진 함수들에는 callback함수와 함께 Web API모듈로 이동된다.
- 그렇게 모듈로 이동된 함수들 외의 것들은 callstack에 쌓인 순서대로 계속 진행이 된다.
3. Queue영역
- 정해진 함수들이 실행이 완료되면 callback함수들이 Queue영역으로 이동한다.
4. Event Loop
- Queue영역에 있는 callback함수들을 다 비워져 있는 callstack으로 이동을 시켜줘서 함수들을 실행가능하게 만든다.
- callstack이 완전히 다 비워져있어야 Queue영역에서 이동이 가능하다
2. setTimeout함수예제를 통한 비동기 코드의 일련의 처리 과정
출처 : ✨♻️ JavaScript Visualized: Event Loop





'JavaScript' 카테고리의 다른 글
| JavaScript(6) - async/await (0) | 2022.05.05 |
|---|---|
| JavaScript(5) - promise (0) | 2022.05.03 |
| JavaScript(3) - 실행 컨텍스트 (0) | 2022.05.02 |
| JavaScript(2) - 20220425 (0) | 2022.04.25 |
| JavaScript(1) - 20220419 (0) | 2022.04.19 |