Execution Context

JavaScript 🔴 Senior

Définition

Environnement abstrait dans lequel le code JS est évalué. Contient le Variable Environment, le Lexical Environment et la valeur de this. Créé pour chaque appel de fonction et le scope global.

Analogie

La fiche d'identité d'un appel de fonction : qui elle est (this), ce qu'elle connaît (variables), et d'ou elle vient (scope).

Exemple de code

// Global EC cree au demarrage
const x = 1;
function foo() {
  // Nouveau EC pour foo()
  const y = 2;
  console.log(x + y); // accede au parent EC
}
foo();

Cas d'usage

Comprendre en profondeur le comportement de this, le hoisting et la scope chain.

#core#interview#avance

En entretien

  1. Explique-moi ce qu'est un execution context.

    C'est l'environnement abstrait dans lequel le code JS est évalué, contenant le Variable Environment, le Lexical Environment et la valeur de this. Un nouveau contexte est créé pour chaque appel de fonction et pour le scope global, comme une fiche d'identité de l'appel.

  2. Comment l'execution context explique le comportement de this et le hoisting ?

    Chaque contexte fixe sa propre valeur de this et sa propre phase de création où les déclarations sont hoistées avant l'exécution du code. C'est en comprenant cette structure qu'on peut prédire correctement le comportement de this et la scope chain.

  3. Dans l'exemple où foo() accède au x du contexte global depuis son propre contexte, comment ça marche en interne ?

    Le contexte global est créé au démarrage avec x, puis un nouveau contexte est créé pour foo() avec sa propre variable y ; quand foo cherche x, il remonte vers le contexte parent qui le possède. C'est la scope chain qui relie ces contextes entre eux.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre