Aller au contenu

Portée (Scope)

La portée (scope) définit où une variable est accessible dans ton programme.
En JavaScript, il existe trois principaux types de portée :

  1. Globale : accessible partout.
  2. Fonction : accessible uniquement à l’intérieur d’une fonction.
  3. Bloc : accessible uniquement dans un bloc { } (if, for, while…).

Une variable déclarée en dehors de toute fonction ou bloc est dite globale.
Elle est accessible depuis n’importe où dans le programme.

let variableGlobale = "Je suis globale";
function afficherGlobale() {
console.log(variableGlobale);
}
afficherGlobale(); // Je suis globale
Attention

Attention : trop de variables globales = code difficile à maintenir.


Une variable déclarée dans une fonction n’existe que dans cette fonction. On dit qu’elle a une portée locale.

function test() {
let variableLocale = "Dans la fonction";
console.log(variableLocale);
}
test();
// console.log(variableLocale); // Erreur : non définie

Avec let et const, les variables sont limitées au bloc de code dans lequel elles sont définies.

if (true) {
let variableBloc = "Dans le bloc";
console.log(variableBloc); // OK
}
// console.log(variableBloc); // Erreur : non définie

Avec var, ce n’est pas le cas → var ignore la portée bloc et se comporte comme une variable fonction.

if (true) {
var test = "Je sors du bloc";
}
console.log(test); // "Je sors du bloc"

Type de portéeMot-clés concernésAccessible où ?
Globalevar, let, constPartout dans le code (⚠️ à éviter trop de globales)
Fonctionvar, let, constSeulement à l’intérieur de la fonction
Bloclet, constSeulement dans le bloc { } (if, for, while…)

  • Utiliser const par défaut, et let si la valeur doit changer.
  • Éviter var (ancien comportement, source de bugs).
  • Réduire au maximum les variables globales → privilégier les variables locales et les fonctions pour mieux organiser ton code.