DEV Community

Cover image for Entendiendo JavaScript por dentro.
Ulises Serrano
Ulises Serrano

Posted on

Entendiendo JavaScript por dentro.

V8 representación

Vamos a entender como funciona el motor interno de JavaScript V8 inventado por Google inicialmente para solucionar algunos problemas de rendimiento de Google Maps. Hay cuatro partes importantes memory heap, call stack, web apis, callback queue.

  • Memory heap: Es el espacio en donde se almacenan las variables y funciones para que están disponibles dentro de nuestro programa.

Ejemplo de varaibles y funciones

  • Web API: Son las API's que están disponibles dentro de la gran mayoría de los navegadores que nos permiten realizas acciones ya sea para manipular el contenido de una página web como lo es DOM, realizar peticiones HTTP como lo es AJAX entre otras muchas cosas.
  • Call stack: Es la pila de acciones pendientes de como es que se están ejecutando en el código todas las funciones que funcionaban de manera síncrona se van apilando en este espacio para que se vayan ejecutando conforme se fueron mandando a llamar.
  • Callback queue: Es la pila de acciones que de las funciones asíncronas que se van apilando de acuerdo a como se fueron ejecutando y terminando, esto último es el diferenciador importante.

GIF de funcionamiento de V8

Esto quiere decir que por ejemplo se mandan a ejecutar dos funciones asíncronas una después de la otra, la primera va a tardar 5 segundos (tarea A) en terminar y la segunda 2 segundo (tarea B), la primera tarea en el callback queue que se va a poner es la tarea B. Porque recordemos que acá se apilan de acuerdo a como vayan terminando. Otra cosa importante es que las funciones apiladas dentro del callback queue no se pueden ejecutar hasta el callback stack este vacío. Así sería el funcionamiento interno de como el motor V8 de JavaScript funciona. Esto quiere decir que nos JavaScript puede ejecutar asincronismo pero su funcionamiento esta pensando de forma sincrona, una tarea detrás de otra. Puedes hacer tus propias pruebas en el siguiente link.

Si este articulo te gusto o aprendiste algo nuevo te agradecería que me apoyaras siguiendo y compartiendo mi contenido. Gracias.

Top comments (0)