Skip to content

Entendiendo que es el callstack en javascript

Published:

¿Que es el callstack?

Posiblemente hayas oido que javascript es un lenguaje que maneja un solo hilo, debes estar preguntándote: pero… ¿qué?, ¿hilo? pero si esto es programación no tiene hilos no tiene nada que ver con la costura!

Pues efectivamente, no tiene que ver con la costura, este termino técnico se utiliza en la programación para definir cuantos contextos de ejecución puede tener activos en paralelo el lenguaje de programación o programa ejecutado.

A diferencia de otros lenguajes javascript solo puede realizar una cosa a la vez, esto, complementando lo anterior, quiere decir que javascript solo puede tener activo un contexto de ejecución en donde corre nuestro código.

Este contexto de ejecución esta ligado con lo que se denomina callstack, ya que, dentro de este callstack se les asignara un orden a los contextos de ejecución que se vayan creando. Vamos con un ejemplo!

function holaMundo() {
  console.log("Hola Mundo!");
}

holaMundo();

Al ejecutar el ejemplo anterior el callstack comenzará ejecutando el contexto global, es el contexto que siempre se estará ejecutando si ningún otro contexto a sido llamado.

Al utilizar la palabra reservada function estamos definiendo un contexto de ejecución y asignándole una etiqueta en este caso holaMundo pero no lo estamos llamando inmediatamente, es decir, sólo lo estamos almacenando en memoria para utilizarlo luego.

function holaMundo() {
  console.log("Hola Mundo!");
}

Luego estamos llamando, efectivamente, al contexto de ejecución holaMundo, ya que estamos haciendo referencia a la etiqueta y ejecutando el contexto añadiendo los paréntesis.

holaMundo();

En el callstack esta función se agregará sobre global(), el callstack ejecutará a holaMundo, luego lo eliminará y volverá a ejecutar a global.

callstack
hola

Este diagrama ejemplifica como es el flujo de ejecución cuando se llama a una función y luego de ser ejecutada se elimina del callstack.

No vemos en el proximo blog! Saludos!