> Что происходит при запуске бесконечной рекурсивной функции с console.log в браузере (JavaScript)

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

Компании: Точка

Стек: JavaScript

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

При запуске бесконечной рекурсивной функции с console.log в браузере происходит следующее:

  1. Stack Overflow (переполнение стека вызовов) - браузер имеет ограничение на глубину стека (обычно ~10 000-50 000 вызовов). Каждый рекурсивный вызов добавляет новый фрейм в стек, и когда лимит превышен, выбрасывается ошибка RangeError: Maximum call stack size exceeded. Выполнение прерывается, console.log перестаёт выводить данные.

  2. Зависание или "заморозка" интерфейса - до возникновения ошибки браузер занят выполнением синхронного кода. Если рекурсия не содержит условий выхода, цикл событий (event loop) блокируется, и пользовательский интерфейс перестаёт реагировать на действия (клики, скролл и т.д.).

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

Пример:

JAVASCRIPT
function recurse() {
console.log('Вызов');
recurse();
}
recurse();
// Вывод: 'Вызов' повторяется ~10 000 раз, затем ошибка.

Итог: бесконечная рекурсия с console.log приводит к переполнению стека, блокировке UI и частичному выводу логов до момента ошибки.

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

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