Lexical Scope

JavaScript 🟡 Mid

Definition

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.

#core#interview