मूल रूप से कॉल स्टैकपॉप के लिए बाहर समारोह एक के बाद एक कॉल शुरू कर देंगे परीक्षण पॉप करने में विफल रहता है जब आखिरी में समारोह कॉल रिटर्न । लेकिन जब भी मैं अपने अधिकतम आकार के करीब एक कॉल स्टैक बनाने की कोशिश करता हूं, तो uncaught expression
उठाया जा रहा है।Recursion - कॉल स्टैक जब अधिकतम ढेर आकार
//Code for testing the stack size
var cnt = 0;
function test(){
//Max stack size is nearer to ~41800
if(cnt++ == 41763){
console.log('finished');
return true;
}
return test();
}
test();
तो उपरोक्त कोड 49.0.2623.112 मीटर नीचे की तरह,
Uncaught exception
< true
क्रोमियम संस्करण में मेरे लिए एक अपवाद फेंक है कृपया नहीं उपरोक्त त्रुटि इसमें कोई संदेश नहीं है। मेरा सवाल यहां है,
स्टैक में अंतिम फ़ंक्शन कॉल true
लौटा दी गई है जिसका अर्थ है कि स्टैक आकार पार नहीं हुआ था। उस स्टैक में अन्य फ़ंक्शन कॉल क्यों नहीं लौटाया गया था? और इस खाली अपवाद संदेश का कारण क्या है?
यह उत्सुक है कि यदि मैं इस कोड को कम पुनरावृत्तियों के साथ चलाता हूं (यानी 40763) त्रुटि तब तक चली जाती है जब तक कोई पृष्ठ रीफ्रेश नहीं होता है। –
विंडोज़ v49.0.2623.87 मीटर पर क्रोम में मुझे * रेंज एरर मिल रहा है: अधिकतम कॉल स्टैक आकार पार हो गया है * जब यह पार हो गया है।और सच हो - अगर यह नहीं है। –
शायद [यह] (https://www.safaribooksonline.com/library/view/high-performance-javascript/9781449382308/ch04s03.html) और [यह] (http://www.2ality.com/2014/04 /call-stack-size.html) मदद करता है? –