[{"data":1,"prerenderedAt":292},["ShallowReactive",2],{"term-s\u002Fstack-overflow":3,"related-s\u002Fstack-overflow":278},{"id":4,"title":5,"acronym":6,"body":7,"category":259,"description":260,"difficulty":261,"extension":262,"letter":263,"meta":264,"navigation":154,"path":265,"related":266,"seo":272,"sitemap":273,"stem":276,"subcategory":6,"__hash__":277},"terms\u002Fterms\u002Fs\u002Fstack-overflow.md","Stack Overflow",null,{"type":8,"value":9,"toc":253},"minimark",[10,15,19,23,26,30,242,246,249],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"A stack overflow happens when a function keeps calling itself forever, like a mirror facing a mirror. Each call gets stacked on top of the last, and eventually the stack runs out of room and crashes. It is also the name of the website every developer has open constantly.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"A stack overflow is a runtime error caused by excessive use of the call stack, most commonly from infinite or deeply nested recursion. Each function call pushes a stack frame onto the call stack, which has a fixed maximum size. When that limit is exceeded, the program crashes with a 'Stack Overflow' or 'Maximum call stack size exceeded' error.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Infinite recursion = stack overflow:\nfunction countdown(n) {\n  console.log(n);\n  countdown(n - 1); \u002F\u002F forgot the base case!\n}\ncountdown(10);\n\u002F\u002F RangeError: Maximum call stack size exceeded\n\n\u002F\u002F Fix: add a base case\nfunction countdown(n) {\n  if (n \u003C= 0) return;\n  console.log(n);\n  countdown(n - 1);\n}\n","javascript","",[38,39,40,49,74,97,122,128,143,149,156,162,177,203,220,237],"code",{"__ignoreMap":36},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"sHwdD","\u002F\u002F Infinite recursion = stack overflow:\n",[41,50,52,56,60,64,68,71],{"class":43,"line":51},2,[41,53,55],{"class":54},"spNyl","function",[41,57,59],{"class":58},"s2Zo4"," countdown",[41,61,63],{"class":62},"sMK4o","(",[41,65,67],{"class":66},"sHdIc","n",[41,69,70],{"class":62},")",[41,72,73],{"class":62}," {\n",[41,75,77,81,84,87,90,92,94],{"class":43,"line":76},3,[41,78,80],{"class":79},"sTEyZ","  console",[41,82,83],{"class":62},".",[41,85,86],{"class":58},"log",[41,88,63],{"class":89},"swJcz",[41,91,67],{"class":79},[41,93,70],{"class":89},[41,95,96],{"class":62},";\n",[41,98,100,103,105,107,110,114,116,119],{"class":43,"line":99},4,[41,101,102],{"class":58},"  countdown",[41,104,63],{"class":89},[41,106,67],{"class":79},[41,108,109],{"class":62}," -",[41,111,113],{"class":112},"sbssI"," 1",[41,115,70],{"class":89},[41,117,118],{"class":62},";",[41,120,121],{"class":47}," \u002F\u002F forgot the base case!\n",[41,123,125],{"class":43,"line":124},5,[41,126,127],{"class":62},"}\n",[41,129,131,134,136,139,141],{"class":43,"line":130},6,[41,132,133],{"class":58},"countdown",[41,135,63],{"class":79},[41,137,138],{"class":112},"10",[41,140,70],{"class":79},[41,142,96],{"class":62},[41,144,146],{"class":43,"line":145},7,[41,147,148],{"class":47},"\u002F\u002F RangeError: Maximum call stack size exceeded\n",[41,150,152],{"class":43,"line":151},8,[41,153,155],{"emptyLinePlaceholder":154},true,"\n",[41,157,159],{"class":43,"line":158},9,[41,160,161],{"class":47},"\u002F\u002F Fix: add a base case\n",[41,163,165,167,169,171,173,175],{"class":43,"line":164},10,[41,166,55],{"class":54},[41,168,59],{"class":58},[41,170,63],{"class":62},[41,172,67],{"class":66},[41,174,70],{"class":62},[41,176,73],{"class":62},[41,178,180,184,187,189,192,195,198,201],{"class":43,"line":179},11,[41,181,183],{"class":182},"s7zQu","  if",[41,185,186],{"class":89}," (",[41,188,67],{"class":79},[41,190,191],{"class":62}," \u003C=",[41,193,194],{"class":112}," 0",[41,196,197],{"class":89},") ",[41,199,200],{"class":182},"return",[41,202,96],{"class":62},[41,204,206,208,210,212,214,216,218],{"class":43,"line":205},12,[41,207,80],{"class":79},[41,209,83],{"class":62},[41,211,86],{"class":58},[41,213,63],{"class":89},[41,215,67],{"class":79},[41,217,70],{"class":89},[41,219,96],{"class":62},[41,221,223,225,227,229,231,233,235],{"class":43,"line":222},13,[41,224,102],{"class":58},[41,226,63],{"class":89},[41,228,67],{"class":79},[41,230,109],{"class":62},[41,232,113],{"class":112},[41,234,70],{"class":89},[41,236,96],{"class":62},[41,238,240],{"class":43,"line":239},14,[41,241,127],{"class":62},[11,243,245],{"id":244},"when-youll-hear-this","When You'll Hear This",[16,247,248],{},"\"You forgot the base case, that's why it stack overflowed.\" \u002F \"Stack Overflow has an answer for this for sure.\"",[250,251,252],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":36,"searchDepth":51,"depth":51,"links":254},[255,256,257,258],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":244,"depth":51,"text":245},"general","A stack overflow happens when a function keeps calling itself forever, like a mirror facing a mirror.","intermediate","md","s",{},"\u002Fterms\u002Fs\u002Fstack-overflow",[267,268,269,270,271],"Recursion","Call Stack","Stack Trace","Runtime Error","Bug",{"title":5,"description":260},{"changefreq":274,"priority":275},"weekly",0.7,"terms\u002Fs\u002Fstack-overflow","4bTcsasjLKi_P1Ih2vW5GrtTxNjLv6BlHllFBSPQqXs",[279,283,286,289],{"title":271,"path":280,"acronym":6,"category":259,"difficulty":281,"description":282},"\u002Fterms\u002Fb\u002Fbug","beginner","A bug is anything in your code that makes it behave wrong.",{"title":267,"path":284,"acronym":6,"category":259,"difficulty":261,"description":285},"\u002Fterms\u002Fr\u002Frecursion","Recursion is when a function calls itself to solve a smaller version of the same problem, like a set of Russian nesting dolls.",{"title":270,"path":287,"acronym":6,"category":259,"difficulty":281,"description":288},"\u002Fterms\u002Fr\u002Fruntime-error","A runtime error is one that only shows up when your program is actually running, not before.",{"title":269,"path":290,"acronym":6,"category":259,"difficulty":281,"description":291},"\u002Fterms\u002Fs\u002Fstack-trace","A stack trace is the error report that tells you exactly which functions were called right before your code crashed.",1776518314823]