📘 Chapitre 5 – Fonctions imbriquées, portée, callbacks
1. 🎯 Objectif pédagogique
Comprendre la portée des variables, utiliser des fonctions imbriquées et mettre en œuvre des callbacks pour structurer le code et gérer des actions asynchrones.
2. 📚 Concepts abordés
- Notion de portée (scope) : globale et locale
- Fonctions imbriquées (fonctions définies à l’intérieur d’une autre)
- Callbacks : fonctions passées en argument
- Exécution synchrone vs asynchrone
- Exemple d’usage avec
setTimeout
etfetch
3. 🧠 Explication théorique
Portée des variables
Une variable définie avec let
ou const
n’est accessible que dans le bloc où elle est définie.
function exemple() {
let x = 10;
console.log(x); // Accessible ici
}
console.log(x); // Erreur : x n'est pas défini
Fonctions imbriquées
On peut définir une fonction dans une autre pour isoler des comportements.
function saluer() {
function message() {
return "Bonjour !";
}
console.log(message());
}
saluer();
Callbacks
Un callback est une fonction passée en argument à une autre fonction pour être exécutée plus tard.
function calculer(a, b, callback) {
let result = a + b;
callback(result);
}
calculer(4, 6, function(res) {
console.log("Résultat : " + res);
});
4. 🛠 Tutoriel pratique
Résumé
Nous allons créer une fonction qui additionne deux nombres, puis appelle un callback pour afficher le résultat avec un délai.
Arborescence du projet
mon_projet/
├── index.html
└── script.js
Étape 1 : Fichier HTML
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Fonctions imbriquées et callbacks</title>
</head>
<body>
<h1>Test des callbacks</h1>
<script src="script.js"></script>
</body>
</html>
Étape 2 : Code JavaScript
function addition(a, b, callback) {
let somme = a + b;
// On exécute le callback avec un délai de 1 seconde
setTimeout(() => {
callback(somme);
}, 1000);
}
addition(5, 7, function(resultat) {
console.log("La somme après 1 seconde est : " + resultat);
});
Étape 3 : Test
Ouvre la page et observe la console : le message doit s’afficher après une seconde.
5. 🧾 Résumé et points-clés
- La portée détermine où une variable est accessible.
- Les fonctions imbriquées aident à organiser le code.
- Les callbacks permettent d’exécuter une fonction après une opération, utile pour gérer l’asynchrone.