Встречается на собеседованиях • сегодня

Как работает очередь вызовов в JS

JavaScript использует однопоточную модель выполнения с циклом событий (event loop), где очередь вызовов (call stack) играет ключевую роль.

  1. Call Stack — LIFO (последний вошел, первый вышел) структура, где выполняются функции.
  2. Web APIs — асинхронные операции (например, setTimeout, fetch) обрабатываются браузером и помещаются в очередь задач (task queue).
  3. Event Loop — проверяет, пуст ли call stack, и переносит задачи из очереди в стек.
javascript
console.log('1');
setTimeout(() => console.log('2'), 0);
console.log('3');
// Вывод: 1, 3, 2

Почему так?

  • console.log('1') и console.log('3') попадают в call stack и выполняются сразу.
  • setTimeout (Web API) отправляет колбэк в очередь задач.
  • Event Loop переносит колбэк в стек только после завершения основного кода.

Микротаски (например, Promise) имеют приоритет над макротасками (setTimeout).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы