Встречается на собеседованиях • сегодня

Почему в JS стек переполняется при вызове рекурсии

Рекурсия вызывает функцию внутри себя, создавая новый стековый фрейм для каждого вызова. Если нет условия выхода (базового случая) или глубина рекурсии слишком большая, стек переполняется, так как у него есть ограничение по размеру.

Пример:

javascript
function infiniteRecursion() {
  infiniteRecursion(); // Бесконечный вызов
}
infiniteRecursion(); // RangeError: Maximum call stack size exceeded

Чтобы избежать переполнения:

  1. Всегда добавляйте базовый случай
  2. Используйте хвостовую рекурсию (если движок поддерживает TCO)
  3. Перепишите рекурсию в итеративный вариант
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы