Sobes.tech
Back to questions
Middle
4

Расскажи про Event Loop в JavaScript/браузере.

Companies where asked
SimbirsoftSimbirsoft

Answer from AI

sobes.tech AI

Event Loop — это механизм в JavaScript и браузерах, который позволяет обрабатывать асинхронные операции без блокировки основного потока.

JavaScript однопоточный, но благодаря Event Loop он может выполнять задачи асинхронно:

  1. Основной поток выполняет синхронный код.
  2. Асинхронные операции (таймеры, сетевые запросы, события) отправляются в Web APIs.
  3. Когда асинхронная операция завершается, её callback помещается в очередь задач (task queue).
  4. Event Loop постоянно проверяет, свободен ли стек вызовов (call stack).
  5. Если стек пуст, Event Loop берет первый callback из очереди задач и помещает его в стек для выполнения.

Таким образом, Event Loop обеспечивает неблокирующее выполнение кода, позволяя браузеру оставаться отзывчивым.

Пример:

console.log('Start');
setTimeout(() => {
  console.log('Timeout callback');
}, 0);
console.log('End');

Вывод будет:

Start
End
Timeout callback

Потому что callback из setTimeout попадает в очередь и выполнится после завершения синхронного кода.