Aller au contenu principal

Le site sera en maintenance le 01/03/2026

Aller au contenu principal

En Python, une fonction peut lire une variable globale, mais pas la modifier sans global. En JS, c'est plus permissif, mais il y a des règles.

Scope de Bloc (avec let et const)

Une variable existe uniquement dans les accolades {} où elle est née.

if (true) {
    const secret = "Code42";
}
// console.log(secret); -> ERREUR ! ReferenceError

Closures (Fermetures)

C'est un concept clé. Une fonction "se souvient" des variables qui existaient à sa création, même si la fonction parente a fini de s'exécuter.

const creerCompteur = () => {
    let count = 0; // Cette variable devrait mourir à la fin de la fonction...
    
    return () => {
        count++; // ... mais cette fonction interne la garde en vie !
        console.log(count);
    };
};

const monCompteur = creerCompteur();
monCompteur(); // 1
monCompteur(); // 2

C'est comme l'encapsulation (attributs privés) en POO, mais avec des fonctions.