Vorteile
- Software zusammensetzen: Module sind kleine Bausteine, die wir zusammenfügen, um komplexe Anwendungen zu erstellen
- Komponenten isolieren: Module können isoliert entwickelt werden, ohne an die gesamte Codebasis denken zu müssen
- Code abstrahieren: Low-Level-Code in Modulen implementieren und diese Abstraktionen in andere Module importieren
- Code organisieren: Module führen auf natürliche Weise zu einer besser organisierten Codebase
- Code wiederverwenden: Module ermöglichen es uns, denselben Code einfach wiederzuverwenden, auch über mehrere Projekte hinweg
ES6 Modules
Bei ES6 Modulen beinhaltet eine Datei genau ein Modul.Unterschiede: Modules vs. Scripts
| Eigenschaft | ES6 Module | Script |
|---|---|---|
| Top-Level-Variablen | Auf Modul beschränkt | Global |
| Standardmodus | Strict Mode | ”Sloppy” Mode |
Top-Level this | undefined | window |
| Imports und Exports | Ja | Nein |
| HTML-Linking | <script type="module"> | <script> |
| Download | Asynchron | Synchron |
Importieren und exportieren
Wir können ein File einfach über einimport-Statement importieren.
- script.js
- shoppingCart.js
- Output
import-Statement sowieso gehoisted wird.
Weiter gibt es sogenannte Named Exports, das heisst, dass wir den Namen des zu importierenden Codes angeben müssen.
- script.js
- shoppingCart.js
- Output
Wir können auch das ganze Modul als Objekt importieren.
- script.js
- Output
Wir können auch Default-Exports machen. Diese können wir dann beim importieren nennen, wie wir wollen.
- script.js
- shoppingCart.js
- Output
CommonJS
CommonJS Imports und Export wurden vor allem in Node.js gebraucht und sind dadurch auch heute noch weit verbreitet.- script.js
- shoppingCart.js