Die Dateiendung .mjs wird für ECMAScript JavaScript-Module verwendet. Sie signalisiert JavaScript-Laufzeitumgebungen, sowohl in Browsern als auch in Node.js-Umgebungen, dass die Datei als Modul behandelt werden soll. Dies ist wichtig, da Module andere Semantiken als traditionelle JavaScript-Skripte aufweisen. Module besitzen ihren eigenen Gültigkeitsbereich (Scope), was bedeutet, dass Variablen und Funktionen, die innerhalb eines Moduls deklariert werden, nicht automatisch im globalen Gültigkeitsbereich verfügbar sind. Sie müssen explizit exportiert werden, um von anderen Modulen genutzt werden zu können. Ebenso muss Code aus anderen Modulen explizit importiert werden, um ihn verwenden zu können. Dieser explizite Import-/Export-Mechanismus fördert die Code-Organisation, Wiederverwendbarkeit und vermeidet Namenskonflikte. Die Verwendung von .mjs ermöglicht es JavaScript-Engines, den Code korrekt als Modul zu parsen und auszuführen, wodurch Funktionen wie import- und export-Anweisungen aktiviert werden. Es ist ein entscheidender Bestandteil der modernen JavaScript-Entwicklung, der modulare Codebasen und ein besseres Abhängigkeitsmanagement ermöglicht. Die Verwendung von .mjs hilft auch dabei, Moduldateien von traditionellen JavaScript-Skriptdateien (die typischerweise die .js-Endung verwenden) zu unterscheiden, da letztere von älteren JavaScript-Engines oder Build-Tools möglicherweise anders interpretiert werden. Diese Unterscheidung ist besonders wichtig in Umgebungen, in denen sowohl Modul- als auch Skriptdateien koexistieren.