- 코드를 실행하는데 필요한 환경을 제공하는 객체.
- 코드를 실행하는데 필요한 조건이나 상태를 모아둔 객체.
- 코드를 실행할 때 식별자를 더욱 효율적으로 결정하기위한 수단으로써 필요한 정보를 한곳에 모아 제공하는 객체.
1. Global execution context (GEC)
브라우저에서 파일이 처음 로드되고 JS 코드가 실행을 시작하는 defualt execution context이다.
2. Functional execution context (FEC)
함수 실행 컨텍스트는 함수 호출을 찾을 때마다 JS 엔진에 의해 생성된 컨텍스트로 정의됩니다. 각 함수는 고유한 실행 컨텍스트를 가집니다.
3. Eval
Execution context inside eval function.
참고 :
https://medium.com/@happymishra66/execution-context-in-javascript-319dd72e8e2c
https://poiemaweb.com/js-execution-context
https://www.geeksforgeeks.org/libuv-in-node-js/
What is the libuv?
libuv is a C library originally written for Node.js to abstract non-blocking I/O operations.Event-driven asynchronous I/O model is integrated.
It allows the CPU and other resources to be used simultaneously while still performing I/O operations, thereby resulting in efficient use of resources and network.
It facilitates an event-driven approach wherein I/O and other activities are performed using callback-based notifications.
화살표 함수에서의 this와, funciton 에서의 this 는 다르다.
그래서 추천하는 건 this를 쓰려면 function을 쓰고, 아니면 화살표를 쓰자 .
주의. this가 포함되어있으면 구조분해 할당을 피하는 것이 좋음