Этот вопрос проверяет понимание работы Event Loop в JavaScript и его роли в асинхронном программировании.
Event Loop — это ключевой механизм в JavaScript, который обеспечивает выполнение асинхронного кода в однопоточной среде. Он работает как бесконечный цикл, который следит за Call Stack (стеком вызовов) и очередями задач. Когда стек пуст, Event Loop берет первую задачу из очереди и помещает ее в стек для выполнения.
JavaScript имеет несколько очередей: очередь microtask (например, Promise.then, MutationObserver) и очередь macrotask (setTimeout, setInterval, I/O). Microtask имеют более высокий приоритет и выполняются сразу после завершения текущего синхронного кода, до обработки macrotask.
console.log('1'); // Синхронный код
setTimeout(() => {
console.log('2'); // Macrotask
}, 0);
Promise.resolve().then(() => {
console.log('3'); // Microtask
});
console.log('4'); // Синхронный код
// Вывод: 1, 4, 3, 2Event Loop используется во всех средах выполнения JavaScript: браузерах, Node.js, Deno. Он критически важен для обработки событий, таймеров, HTTP-запросов и других асинхронных операций.
Понимание Event Loop необходимо для написания эффективного асинхронного кода, избежания блокировок и правильной обработки порядка выполнения задач. Это основа для работы с промисами, async/await и таймерами.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию