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

Как будешь действовать, если стек вызовов будет заполнен

При переполнении стека вызовов (Stack Overflow) можно:

  1. Оптимизировать рекурсию через хвостовую рекурсию (если поддерживается движком):
javascript
function factorial(n, acc = 1) {
  if (n <= 1) return acc;
  return factorial(n - 1, n * acc); // хвостовая рекурсия
}
  1. Заменить рекурсию на итерацию:
javascript
function factorial(n) {
  let result = 1;
  for (let i = 2; i <= n; i++) {
    result *= i;
  }
  return result;
}
  1. Использовать setTimeout для разбиения на макрозадачи:
javascript
function processChunk(start, end) {
  if (start >= end) return;
  // обработка части данных
  setTimeout(() => processChunk(start + 1, end), 0);
}
  1. Проверить на бесконечную рекурсию (самая частая причина переполнения)

  2. Увеличить лимит стека (Node.js: --stack-size=10000, но лучше избегать)

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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