Desarrollador Frontend: pregunta de entrevista

¿Cómo funciona el event loop de JavaScript?

JavaScript ejecuta trabajo síncrono en una sola pila. Los callbacks de Promise se ejecutan como microtareas antes de la siguiente macrotarea, como un timer o evento de entrada, por lo que trabajo síncrono largo bloquea el renderizado.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

El motor ejecuta una tarea a la vez sobre una única pila de llamadas. Cuando la pila se vacía, el event loop agota toda la cola de microtareas, que contiene reacciones de promesas y callbacks de queueMicrotask, antes de tomar una macrotarea como un temporizador, una E/S completada o un evento de usuario. El renderizado ocurre entre macrotareas, por lo que una tarea síncrona larga o un bucle de microtareas sin fin congela la página aunque no haya temporizadores.

Ejemplo

Después de terminar un handler de clic, los callbacks Promise.then se ejecutan antes que los setTimeout programados allí. Un componente que espera tres fetch en secuencia mantiene la interfaz responsiva porque cada await libera la pila, mientras que parsear un JSON de 50 MB en el hilo principal bloquea la entrada hasta que termina.

Errores frecuentes

  • Tratar setTimeout(fn, 0) como si se ejecutara justo después de la línea actual.
  • Suponer que await pausa todo el programa y no solo la función async.
  • Hacer trabajo intensivo de CPU en el hilo principal en lugar de un Web Worker.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador Frontend