ìë¬ íì
무ìì´ ì못ëììê¹?
ìì ì í¸ì¶íë í¨ì를 ì¬ê· í¨ìë¼ê³ í©ëë¤. ì´ë¤ ë©´ìì, ì¬ê·ë ë°ë³µê³¼ ì ì¬í©ëë¤. ë ë¤ ê°ì ì½ë를 ì¬ë¬ ë² ì¤ííë©°, ì¡°ê±´(무í ë°ë³µ í¼í기, ë ì íí ì¬ê¸°ì ë§íë 무í ì¬ê·)ì´ ììµëë¤. ë무 ë§ê±°ë 무í ë²ì ì¬ê·ê° ë°ìí ê²½ì°, JavaScriptë ì´ ìë¬ë¥¼ ëì§ ê²ì ëë¤.
ì
ì´ ì¬ê· í¨ìë exit ì¡°ê±´ì ë°ë¼ 10ë²ì ì¤íí©ëë¤.
js
function loop(x) {
if (x >= 10) {
// "x >= 10" is the exit condition
return;
}
// do stuff
loop(x + 1); // the recursive call
}
loop(0);
ì´ ì¡°ê±´ì ëíì¬ ë무 ëì ê°ì ì¤ì íë©´ ìëíì§ ìê² ë©ëë¤.
js
function loop(x) {
if (x >= 1000000000000) return;
// do stuff
loop(x + 1);
}
loop(0);
// InternalError: too much recursion