Lexical Scope
JavaScript 🟡 MidDefinition
Le scope d'une variable est determine par l'endroit ou elle est ecrite dans le code source, pas par l'endroit ou la fonction est appelee. C'est la base des closures en JS.
Analogie
Ton adresse postale depend d'ou tu habites, pas d'ou tu te trouves quand tu recois le courrier.
Exemple de code
const x = 'global';
function foo() {
console.log(x); // 'global' (scope lexical)
}
function bar() {
const x = 'bar';
foo(); // affiche 'global', pas 'bar'
}
Cas d'usage
Predire le comportement des closures et comprendre pourquoi JS n'utilise pas le dynamic scoping.