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.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.