InternalError: too much recursion
๋ฉ์์ง
InternalError: too much recursion
์๋ฌ ํ์
๋ฌด์์ด ์๋ชป๋์์๊น?
์์ ์ ํธ์ถํ๋ ํจ์๋ฅผ ์ฌ๊ท ํจ์๋ผ๊ณ ํฉ๋๋ค. ์ด๋ค ๋ฉด์์, ์ฌ๊ท๋ ๋ฐ๋ณต๊ณผ ์ ์ฌํฉ๋๋ค. ๋ ๋ค ๊ฐ์ ์ฝ๋๋ฅผ ์ฌ๋ฌ ๋ฒ ์คํํ๋ฉฐ, ์กฐ๊ฑด(๋ฌดํ ๋ฐ๋ณต ํผํ๊ธฐ, ๋ ์ ํํ ์ฌ๊ธฐ์ ๋งํ๋ ๋ฌดํ ์ฌ๊ท)์ด ์์ต๋๋ค. ๋๋ฌด ๋ง๊ฑฐ๋ ๋ฌดํ ๋ฒ์ ์ฌ๊ท๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ, JavaScript๋ ์ด ์๋ฌ๋ฅผ ๋์ง ๊ฒ์ ๋๋ค.
์
์ด ์ฌ๊ท ํจ์๋ exit ์กฐ๊ฑด์ ๋ฐ๋ผ 10๋ฒ์ ์คํํฉ๋๋ค.
function loop(x) {
if (x >= 10) {
// "x >= 10" is the exit condition
return;
}
// do stuff
loop(x + 1); // the recursive call
}
loop(0);
์ด ์กฐ๊ฑด์ ๋ํ์ฌ ๋๋ฌด ๋์ ๊ฐ์ ์ค์ ํ๋ฉด ์๋ํ์ง ์๊ฒ ๋ฉ๋๋ค.
function loop(x) {
if (x >= 1000000000000) return;
// do stuff
loop(x + 1);
}
loop(0);
// InternalError: too much recursion