Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: event loop, asynchronous, call stack, callback queue, microtask, macrotask

77777

Этот вопрос проверяет понимание работы Event Loop в JavaScript, что необходимо для написания асинхронного кода без блокировок.

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

Event Loop — это механизм, который позволяет JavaScript выполнять асинхронные операции, не блокируя основной поток. Он постоянно проверяет, пуст ли Call Stack, и если да, то берет задачи из очередей (microtask и macrotask) и помещает их в стек. Это основа асинхронного программирования в браузере и Node.js.

Длинный ответ

Что такое Event Loop?

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

Как он работает?

Event Loop работает в бесконечном цикле, выполняя следующие шаги:

  • Проверяет, пуст ли Call Stack (стек вызовов).
  • Если стек пуст, он берет первую задачу из очереди microtask (например, Promise.then).
  • После обработки всех microtask, он берет одну задачу из очереди macrotask (например, setTimeout).
  • Повторяет цикл.

Пример кода

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 (microtask) выполняется раньше, чем setTimeout (macrotask), поэтому '3' выводится перед '2'. Это демонстрирует приоритет microtask над macrotask.

Где применяется?

Понимание Event Loop критично при работе с асинхронными операциями: обработка событий пользовательского интерфейса, выполнение HTTP-запросов, работа с таймерами, анимации. Без этого знания легко создать код, который блокирует интерфейс или приводит к неожиданному порядку выполнения.

Вывод: Event Loop — это фундаментальная концепция для любого JavaScript-разработчика. Её понимание помогает писать эффективный, неблокирующий асинхронный код и избегать распространённых ошибок, связанных с порядком выполнения.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#event loop

#asynchronous

#call stack

#callback queue

#microtask

#macrotask

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию