모듈 시스템 정리: Require와 Import, 모듈은 동기적으로 불러올까
CommonJS와 ESM의 문법과 동작 차이를 예제로 비교하고, 정적 import와 동적 import의 처리 순서를 따라가며 모듈 로딩이 동기인지 비동기인지 정리했다.
6편
CommonJS와 ESM의 문법과 동작 차이를 예제로 비교하고, 정적 import와 동적 import의 처리 순서를 따라가며 모듈 로딩이 동기인지 비동기인지 정리했다.
V8 같은 엔진과 브라우저나 Node.js 같은 런타임이 각각 맡는 일을 나누고, 이벤트 루프가 엔진이 아니라 런타임에 속하는 이유와 그 구조를 다이어그램으로 설명한다.
자바스크립트 런타임을 이루는 엔진, Web API, 태스크 큐, 잡 큐, 이벤트 루프가 각각 무슨 일을 하는지, 싱글 스레드로 어떻게 비동기를 처리하는지 그림과 함께 정리했다.
함수 호출, 메서드 호출, 화살표 함수, call/apply/bind, strict mode에서 this가 각각 무엇을 가리키는지 예제로 하나씩 확인하며 정리했다.
자바스크립트가 클래스가 아니라 프로토타입을 택한 철학적 배경을 비트겐슈타인의 의미사용이론과 가족유사성 개념으로 풀어 정리했다.
for...in과 for...of가 각각 무엇을 순회하는지부터 enumerable 속성, Object.keys, getOwnPropertyNames, hasOwnProperty의 차이까지 예제로 정리했다.