Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: infinite loop, event loop, blocking, main thread, JavaScript runtime

Что произойдёт при выполнении бесконечного цикла while (true) {}?

Проверяет понимание того, как бесконечный цикл влияет на выполнение JavaScript-кода и блокировку основного потока.

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

Бесконечный цикл while (true) {} полностью блокирует основной поток выполнения JavaScript. Это означает, что никакой другой код, включая обработчики событий, таймеры или асинхронные операции, не сможет выполниться. В результате страница или приложение зависнут, так как цикл никогда не завершится и не освободит поток.

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

Что происходит при выполнении бесконечного цикла?

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

Влияние на Event Loop

Event Loop — это механизм, который управляет выполнением кода, обработкой событий и асинхронных операций. Он работает по принципу очереди: сначала выполняется синхронный код, затем обрабатываются макрозадачи (например, setTimeout) и микрозадачи (например, Promise). Бесконечный цикл не позволяет Event Loop перейти к следующей задаче, так как он никогда не завершает текущую синхронную операцию.

Пример

console.log('Start');

while (true) {
  // ничего не делаем
}

console.log('End'); // Этот код никогда не выполнится

В этом примере сообщение 'End' никогда не будет выведено, так как выполнение застрянет в бесконечном цикле. Более того, любые асинхронные операции, такие как обработка кликов или таймеры, также не сработают.

Практические последствия

  • Браузер или среда выполнения (например, Node.js) перестают отвечать на запросы.
  • Пользовательский интерфейс зависает, так как рендеринг также блокируется.
  • В некоторых средах (например, в браузере) может появиться предупреждение о зависшем скрипте.

Вывод

Бесконечные циклы в JavaScript следует избегать, так как они блокируют основной поток и делают приложение неотзывчивым. Если требуется выполнить длительную операцию, лучше использовать асинхронные подходы, такие как Web Workers или разбиение задачи на части с помощью setTimeout.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

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

#infinite loop

#event loop

#blocking

#main thread

#JavaScript runtime

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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