Call Stack
También conocido como Pila de Ejecución hace referencia a los elementos dentro de nuestro programa que están siendo ejecutados en el momento, que están en la cabecera. Para este tutorial se va a preparar una deliciosa hamburguesa hecha por el chef de la casa Javascript, aquí está la receta:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Scope</title>
</head>
<body>
<script>
const moler = (ingrediente) => {
console.log('moler ' + ingrediente);
}
const cortar = (ingrediente) => {
console.log('cortar ' + ingrediente);
}
const freir = (ingrediente) => {
console.log('freir ' + ingrediente);
}
function esperar(n) {
if (n <= 0) return;
console.log('Esperar ' + n + 'minutos');
esperar(n - 1);
if (n == 1)
{
console.log('carne lista');
}
}
const tajar = (ingrediente) => {
console.log('tajar el ' + ingrediente);
}
const integrar = (ingrediente) => {
console.log('integrar ' + ingrediente);
}
function comer() {
console.log('Comer');
}
function hacerHamburguesa() {
moler('carne');
cortar('lechuga');
cortar('cebolla');
freir('carne')
esperar(5);
tajar('pan')
integrar('ingredientes')
comer();
}
hacerHamburguesa();
</script>
</body>
</html>
Como primera medida, el Chef lee toda la receta de arriba hacia abajo, luego de ello identifica el elemento central de la receta hacerHamburguesa() que nos hace un llamado a la función y luego empieza a ejecutar los elementos de esa función en orden, empezando con el llamado a la función moler que me lanza un console.log; un mensaje. Después el chef Javascript empieza a tachar lo que ya se hizo y regresa a la función principal hacerHamburguesa() y continúa con la siguiente tarea que es cortar lechuga que llama nuevamente a la función cortar y me lanza un mensaje de nuevo y así el chef continúa las instrucciones, va tachando el paso de la receta realizada y sigue con el otro.

Exactamente lo que hace el chef Javascript es igual a como se ejecuta el código va leyendo las instrucciones que lanza la receta principal hacerHamburguesa() lee los llamados que hace a cada función, ejecuta la función y va eliminando lo que ya hizo. Esto quiere decir que javascript va ejecutando lo que está en el top de la lista (receta). Así funciona la Pila de Ejecución o Call Stack como la preparación de una hamburguesa, capa por capa hasta que está preparada, se come y termina el programa, se acabó la burguer.
Curso de Programación Básica