Contexto de ejecución en JavaScript

Feb 25 2023
Comencemos con un ejemplo y luego analizamos cómo funciona ese código detrás de escena. Primero, declare las variables x e y e inicialice con sus respectivos valores 10 y 20.

Comencemos con un ejemplo y luego analizamos cómo funciona ese código detrás de escena.

var x = 10;
var y = 20;

function add(a,b){
  return a+b;
}

var result = add(x,y);

console.log(result) //30

Primero, declare las variables x e y e inicialice con sus respectivos valores 10 y 20.

En segundo lugar, declare la función de suma que acepta el argumento y devuelve la suma de los argumentos, es decir, 10 + 20 = 30.

En tercer lugar, llame a la función de suma con los argumentos como los valores de las variables x e y y almacene el resultado en la variable resultado.

Finalmente, salida de la variable resultado con consola.

Mientras ejecuta el código anterior, JavaScript hace muchas cosas.

Cuando el motor JavaScript ejecuta el código JavaScript en ese momento, crea contextos de ejecución.

Cada contexto de ejecución tiene dos fases.

  1. La fase de creación.
  2. La fase de ejecución.

Cuando el motor JavaScript ejecuta código por primera vez, crea el contexto de ejecución global. Durante esta fase, JavaScript realiza algunas tareas.

  1. Cree el objeto global, es decir, una ventana en el navegador web o global en Node.js.
  2. Cree este objeto (esta palabra clave) y vincúlelo al objeto global. En el caso del navegador web, esta palabra clave se adjunta con el objeto de ventana y en Node js, esta palabra clave se adjunta con el objeto global.
  3. Configure un montón de memoria para almacenar referencias de variables y funciones.
  4. Almacene las declaraciones de funciones en el montón de memoria y las variables dentro del contexto de ejecución global con los valores iniciales como indefinidos.
  1. Almacene la variable x, y & el resultado y la declaración de función add() en el contexto de ejecución global.
  2. Inicialice las variables con un valor indefinido, es decir, x = indefinido, y = indefinido y resultado = indefinido.

Fase de ejecución

Durante la fase de ejecución, el motor de JavaScript ejecuta el código línea por línea, asigna los valores a la variable y ejecuta las llamadas a funciones.

Para cada llamada de función, el motor de JavaScript crea una nueva llamada de ejecución funcional.

El contexto de ejecución de la función es similar al contexto de ejecución global. Pero en lugar de crear el objeto global, el motor de JavaScript crea el objeto de argumentos que es una referencia a todos los parámetros de la función.

En nuestro ejemplo, el motor de JavaScript crea un objeto de argumentos que hace referencia a todos los parámetros pasados ​​a la función y establece este valor en el objeto global. En el caso del navegador web, este valor se adjunta con el objeto de ventana y en Node js este valor se adjunta con global. objeto y también inicializa el parámetro a & b con un valor indefinido.

Durante la fase de ejecución del contexto de ejecución de la función, el motor de JavaScript asigna el valor 10 y 20 al parámetro a y b y devuelve el resultado (30) al contexto de ejecución global.

Para realizar un seguimiento de todos los contextos de ejecución, incluido el contexto de ejecución global y los contextos de ejecución de funciones, el motor de JavaScript utiliza la pila de llamadas.

Mantengamonos en contacto

Espero que este artículo te sea de utilidad, ¡nos vemos en el próximo!