본문 바로가기

JavaScript/AboutJS

[JavaScript ]CommonJS 모듈 ES 모듈 차이

 

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