Uncaught RangeError: Maximum call stack size exceeded

maximum call stack size exceeded JavaScript hiba: kilépési feltétel és iteratív megoldás rekurzió helyett.

maximum call stack size exceeded JavaScript

Hibaüzenet

Uncaught RangeError: Maximum call stack size exceeded

Hibás kód

function recurse() { recurse(); }
recurse();

Javított kód

function recurse(n) {
  if (n <= 0) return;
  recurse(n - 1);
}
recurse(10);

Magyarázat

maximum call stack size exceeded JavaScript hiba akkor fordul elő, amikor egy függvény végtelen rekurzióba kerül, és a hívások egymásra rakódnak a stackben. A JavaScript környezet csak korlátozott számú egymásba ágyazott hívást tud kezelni. A megoldás, hogy minden rekurzív függvénynek legyen kilépési feltétele, vagy nagy ciklusokat iteratívan oldj meg (pl. for-ral).

További információ: MDN – Out of stack space