> В каком порядке выполняются console.log в JavaScript с учетом синхронности и микротасков? (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: РСХБ

Стек: JavaScript

> Пример ответа

В JavaScript порядок выполнения console.log определяется циклом событий (event loop). Сначала выполняется весь синхронный код (стек вызовов), затем обрабатываются микротаски (Promise.then, queueMicrotask, MutationObserver), и только потом - макротаски (setTimeout, setInterval, I/O).

Пример:

JAVASCRIPT
console.log('1'); // синхронно
setTimeout(() => console.log('2'), 0); // макротаска
Promise.resolve().then(() => console.log('3')); // микротаска
console.log('4'); // синхронно

Вывод: 1, 4, 3, 2.

Объяснение:

  • Сначала выполняются console.log('1') и console.log('4') - синхронный код.
  • Затем, после завершения синхронного стека, обрабатывается микротаска Promise.then, выводя 3.
  • И только после этого - макротаска setTimeout, выводя 2.

Таким образом, микротаски имеют приоритет над макротасками, но выполняются после синхронного кода.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью