Определение порядка вывода в консоль JavaScript‑кода

Порядок: 1, 6, 4, 2, 3, 3.1, 5. Микрозадачи выполняются после текущего синхронного кода и между отдельными задачами таймеров.

Короткий ответ

Что ответить на собеседовании

Порядок: 1, 6, 4, 2, 3, 3.1, 5. Микрозадачи выполняются после текущего синхронного кода и между отдельными задачами таймеров.

Подробный разбор

Ответ с пояснениями

Условие

Нужно указать, какие значения и в каком порядке появятся в консоли при выполнении следующего скрипта.

 console.log(1);

setTimeout(() => console.log(2));

setTimeout(() => {
    console.log(3)
    Promise.resolve().then(() => console.log(3.1))
}, 0);

Promise.resolve().then(() => console.log(4));

setTimeout(() => console.log(5));

console.log(6)

Ответ

Порядок: 1, 6, 4, 2, 3, 3.1, 5. Микрозадачи выполняются после текущего синхронного кода и между отдельными задачами таймеров.

Сначала главный стек печатает 1 и 6, затем then — 4. Таймеры поставлены в порядке 2, 3, 5. Обработчик с 3 добавляет микрозадачу 3.1, которую event loop выполнит до перехода к таймеру с 5.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее