Les modules
Modules JavaScript et syntaxe d'import/export
Partie théorique
En JavaScript, un module est un fichier contenant du code JavaScript, qui est isolé des autres modules.
Chaque module a sa propre portée, c'est-à-dire que les variables, les fonctions, etc., déclarées dans un module ne sont pas visibles en dehors de ce module, sauf si elles sont exportées.
-
Pour permettre d'utiliser les variables ou les fonctions d'un module dans un autre module, nous devons les exporter à l'aide du mot-clé
export
. -
De même, pour utiliser ces variables ou fonctions exportées dans un autre module, nous devons les importer à l'aide du mot-clé
import
.
Exemple pratique
Supposons que nous ayons un module nommé math.js
qui contient 2 fonctions : add
et multiply
.
// math.js
export function add(a, b) {
return a + b;
}
export function multiply(a, b) {
return a * b;
}
Nous pouvons utiliser ces fonctions dans un autre module en les important.
// app.js
import { add, multiply } from './math.js';
console.log(add(2, 3)); // Affiche 5
console.log(multiply(2, 3)); // Affiche 6
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Créez deux modules : calculatrice.js
et app.js
.
- Le module
calculatrice.js
doit exporter quatre fonctions :add
,subtract
,multiply
etdivide
. - Le module
app.js
doit importer ces fonctions et les utiliser pour effectuer quelques calculs.console.log(add(10, 5)); // Affiche 15
console.log(subtract(10, 5)); // Affiche 5
console.log(multiply(10, 5)); // Affiche 50
console.log(divide(10, 5)); // Affiche 2
Une solution possible
Contenu du fichier calculatrice.js
:
export function add(a, b) {
return a + b;
}
export function subtract(a, b) {
return a - b;
}
export function multiply(a, b) {
return a * b;
}
export function divide(a, b) {
if (b === 0) {
return 'Erreur: division par zéro';
}
return a / b;
}
Contenu du fichier app.js
:
import { add, subtract, multiply, divide } from './calculatrice.js';
console.log(add(10, 5)); // Affiche 15
console.log(subtract(10, 5)); // Affiche 5
console.log(multiply(10, 5)); // Affiche 50
console.log(divide(10, 5)); // Affiche 2