Call Stack
JavaScript 🟢 JuniorDéfinition
Pile LIFO (Last In, First Out) qui trace les contextes d'exécution des fonctions en cours. Chaque appel de fonction empile un frame, chaque return le depile.
Analogie
Une pile d'assiettes : tu poses la dernière en haut et tu reprends toujours celle du dessus.
Exemple de code
function a() { b(); }
function b() { c(); }
function c() { console.trace(); }
a();
// c -> b -> a -> global
Cas d'usage
Lire les stack traces d'erreurs et comprendre les dépassements de pile (stack overflow).
Anti-pattern
Termes liés
En entretien
C'est quoi la call stack ?
C'est une pile LIFO qui trace les contextes d'exécution des fonctions en cours : chaque appel empile un frame, chaque return le dépile. C'est comme une pile d'assiettes, tu reprends toujours celle du dessus en premier.
Comment tu lirais une stack trace d'erreur grâce à ça ?
La trace montre l'ordre des appels empilés, comme dans l'exemple a() qui appelle b() qui appelle c(), donc console.trace() affiche c -> b -> a -> global. Ça permet de remonter jusqu'à l'origine de l'appel qui a causé l'erreur.
Qu'est-ce qui provoque un 'Maximum call stack size exceeded' ?
Une récursion infinie sans condition d'arrêt, qui empile des frames indéfiniment jusqu'à dépasser la taille de la pile. C'est l'anti-pattern classique à surveiller dans toute fonction récursive.
Fiche mise à jour le 2026-09-27