Что отобразит консоль в данном фрагменте кода

Вывод будет 1, 3, 2. setTimeout с задержкой 0 регистрирует отложенный callback, но не прерывает выполнение текущего JavaScript-кода.

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

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

Вывод будет 1, 3, 2. setTimeout с задержкой 0 регистрирует отложенный callback, но не прерывает выполнение текущего JavaScript-кода.

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

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

Условие

Определите порядок вывода в консоль для следующего JavaScript‑кода:

console.log(1);
setTimeout(() => console.log(2), 0);
console.log(3);

Ответ

Вывод будет 1, 3, 2. setTimeout с задержкой 0 регистрирует отложенный callback, но не прерывает выполнение текущего JavaScript-кода.

Сначала выполняется console.log(1), затем ставится таймер, после чего немедленно печатается 3. Когда текущий стек освободится и среда перейдёт к готовой задаче таймера, появится 2. Нулевая задержка означает отсутствие запрошенного дополнительного ожидания, а не синхронный вызов.

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

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

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

Подробнее