실행컨텍스트에 대한 부분이 잘 이해가 가지 않았는데,
오히려 다른 것들을 넓게 보니까 이해가 되는 것 같아 같이 정리한다.
🔮 스코프 체이닝
- 식별자를 결정하기 위해 하는 과정이다.
- 현재 실행컨텍스트와, 상위 컨텍스트를 이어주는 Outer Enviroment 를 참고해 실행컨텍스트 위에서 부터 읽어가며 해당 값을 찾는다
- 식별자를 결정할 때에 활용하는 스코프들의 연결 리스트를 스코프 체인 이라고 하며,
- 실행 컨텍스트의 외부환경참조( Outer Enviroment Referenc ) 와 관련되어 있다. (상위 Lexical Environment 를 참조한다)
- 이 스코프는 안에서 밖을 참조하는 것은 가능하나, 밖에서 안을 참조하는 건 불가하다.
🔮 클로저
- 이미 호출되고 사라진 애한테 접근하는 걸 말한다.
- 즉 자신이 선언될 당시의 환경을 기억한다.
function sum(a){
return function add(b){
return a+b;
}
}
//호출과 동시에 sum 함수가 call stack에 들어간다.
const pluse = sum(2);
//실행된 sum 함수는 사라지고, pluse 함수는 이미 사라진 sum 함수의 인자를 참조한다.
console.log(pluse(7));
이번엔 이벤트 루프에 대해 살펴보자. 생각보다 그림으로 보면 간단하다.
🔮 이벤트 루프
여기서 색깔 박스들이 실행 컨텍스트이다.
자바스크립트 에서 비동기 작업을 처리하고 실행 순서를 관리하는 매커니즘을 이벤트 루프라고 하는데,
그림으로 표현하면 아래와 같다.
확실히 그림으로 정리하고 나니 이해가 훨씬 잘되는 것 같다.
이론적인 부분을 알고 코딩하게 되면 훨씬 더 좋은 코드를 만들 수 있을 것 같아서 어렵더라도 꾸준히 봐야겠다.
'TIL' 카테고리의 다른 글
23/11/01 TIL __ Thunder Client 무한로딩 현상 (1) | 2023.11.01 |
---|---|
23/10/31 TIL __ 모듈 타입에서 변수의 특징 (0) | 2023.10.31 |
23/10/29 TIL _ 실행컨텍스트, 호이스팅에 관하여 (0) | 2023.10.29 |
23/10/27 TIL _ nullish 병합 연산자 " ?? " (0) | 2023.10.27 |
23/10/26 TIL __ git stash (0) | 2023.10.26 |