1. 문법
- CommonJS 모듈
const module = require('module');
module.exports = { ... };
- ES 모듈
import module from 'module';
export const something = { ... };
2. 로딩방식
CommonJS: 동기적으로 로드
ES 모듈: 비동기적으로 로드
3. 사용환경
CommonJS: 주로 Node.js 환경
ES 모듈: 브라우저와 최신 Node.js 버전에서 지원
4. 정적 분석
CommonJS: 런타임에 동적으로 모듈 결정
ES 모듈: 컴파일 시간에 정적으로 분석 가능
5. 캐싱
CommonJS: 모듈을 캐시하여 여러 번 호출해도 한 번만 실행
ES 모듈: 모듈을 한 번만 평가하고 결과를 공유
6. this 값
CommonJS: 모듈 내 this는 exports 객체를 가리킴
ES 모듈: 모듈 내 this는 undefined
7. 순환 의존성 처리
CommonJS: 부분적으로 완성된 객체 반환 가능
ES 모듈: 더 엄격한 처리, 순환 의존성 감지 용이
'JavaScript > AboutJS' 카테고리의 다른 글
[JavsScript] yield* 란? (0) | 2024.09.29 |
---|---|
[Javascript] Iterable, Iterator 프로토콜 (0) | 2024.09.26 |
[JavaScript] Closure (클로져) (0) | 2024.08.23 |
[JavaScript] 이벤트 루프란? (0) | 2024.08.21 |
[JavaScript] This 를 판단하는 기준 (0) | 2024.08.18 |