.mjs 파일 확장자는 ECMAScript JavaScript 모듈에 사용됩니다. 이는 파일이 브라우저와 Node.js 환경 모두에서 JavaScript 런타임에 의해 모듈로 취급되어야 함을 나타냅니다. 모듈은 기존 JavaScript 스크립트와는 다른 의미론(semantics)을 가지므로 이는 중요합니다. 모듈은 자체적인 스코프(scope)를 가지며, 이는 모듈 내에서 선언된 변수와 함수가 전역 스코프에 자동으로 사용 가능하지 않음을 의미합니다. 다른 모듈에서 사용되려면 명시적으로 내보내기(export)되어야 합니다. 마찬가지로, 다른 모듈의 코드를 사용하려면 명시적으로 가져오기(import)해야 합니다. 이러한 명시적인 import/export 메커니즘은 코드 구성, 재사용성을 촉진하고 이름 충돌을 방지합니다. .mjs를 사용하면 JavaScript 엔진이 코드를 모듈로 올바르게 구문 분석하고 실행할 수 있게 되어 import 및 export 구문과 같은 기능을 활성화할 수 있습니다. 이는 모듈식 코드베이스와 더 나은 종속성 관리를 용이하게 하는 현대 JavaScript 개발의 중요한 부분입니다. .mjs의 사용은 또한 일반적으로 .js 확장자를 사용하는 기존 JavaScript 스크립트 파일과 모듈 파일을 구별하는 데 도움이 되며, 이는 이전 JavaScript 엔진이나 빌드 도구에 의해 다르게 해석될 수 있습니다. 이러한 구분은 모듈 파일과 스크립트 파일이 공존하는 환경에서 특히 중요합니다.