Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Portée (Scope)
Laportée est le contexte d'exécution courant dans lequel lesvaleurs et les expressions sont « visibles » ou peuvent être référencées. Si unevariable ou une expression n'est pas dans la portée courante, elle ne sera pas disponible à l'utilisation. Les portées peuvent aussi être organisées en hiérarchie, de sorte que les portées enfants ont accès aux portées parentes, mais pas l'inverse.
JavaScript comprend les types de portée suivants :
- Portée globale : la portée par défaut pour tout code s'exécutant en mode script.
- Portée de module : la portée pour le code s'exécutant en mode module.
- Portée de fonction : la portée créée par unefonction.
De plus, les identifiants déclarés avec certaines syntaxes, notammentlet,const,class ou (en mode strict)function, peuvent appartenir à une portée supplémentaire :
- Portée de bloc : la portée créée par une paire d'accolades (unbloc).
Unefonction crée une portée, de sorte que (par exemple) une variable définie exclusivement à l'intérieur de la fonction ne peut pas être accessible depuis l'extérieur de la fonction ni depuis d'autres fonctions. Par exemple, le code suivant est invalide :
function fonctionExemple() { const x = "déclarée dans la fonction"; // x ne peut être utilisée que dans fonctionExemple console.log("Dans la fonction"); console.log(x);}console.log(x); // Provoque une erreurCependant, le code suivant est valide car la variable est déclarée en dehors de la fonction, ce qui la rend globale :
const x = "déclarée en dehors de la fonction";fonctionExemple();function fonctionExemple() { console.log("Dans la fonction"); console.log(x);}console.log("En dehors de la fonction");console.log(x);Les blocs limitent la portée des déclarationslet etconst, mais pas des déclarationsvar.
{ var x = 1;}console.log(x); // 1{ const x = 1;}console.log(x); // ReferenceError: x is not definedDans cet article
Voir aussi
- Portée sur Wikipédia
- Règles de portée de bloc