Algorytmy i struktury danych · Middle · Pytanie 51 z 75
Jak uniknąć przepełnienia stosu przy głębokiej rekurencji w JavaScripcie?
- 1Oznaczyć funkcję rekurencyjną jako
async - 2Owinąć wywołanie rekurencyjne w
try...catch - ✓Poprawna odpowiedź: Przepisać ją na pętlę z jawnym stosem
Wyjaśnienie
Silniki JavaScriptu (poza Safari) nie implementują optymalizacji wywołań ogonowych, więc stos wywołań jest ograniczony do mniej więcej dziesięciu tysięcy ramek. Jawna tablica-stos żyje na stercie i może urosnąć znacznie bardziej.