JavaScript是否在每次递归调用时启动一个新的堆栈?
Does JavaScript start a new stack on every recursive call?
我需要使用JavaScript执行一些递归操作。
JavaScript引擎像Java一样工作吗?对于递归,Java在每次递归调用时启动一个新的堆栈。JavaScript是如何处理的呢?
ECMAscript没有尾部优化的概念…然而,如果这就是问题所在呢?
尾部优化是什么意思?
表示堆栈帧在点不再需要递归调用,因此可以消除
这反过来意味着,由于没有关于该主题的官方规范,因此如何处理它基本上取决于解释器。可能有一些优化在幕后进行(V8 ?),但最好假设JS递归根本没有得到优化。
是的,每次递归调用都会创建一个新的堆栈条目
相关文章:
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 高图表,检测点是否在堆栈中的第一个
- 当一个变量被传递给一个函数时,JavaScript堆栈会发生什么
- 仅在堆栈中的最后一个执行回调
- Android WebView:在javascript中,有没有一种方法可以加载另一个javascript文件,并为堆栈
- JS调用堆栈是否始终至少有一个帧
- 如何制作一个Javascript/jQuery/HTML动画图像堆栈
- 如何在Javascript中释放上一个堆栈帧的内存
- 为了研究节点并制作好产品,哪个技术堆栈(模块、框架)更适合第一个node.js项目
- 获取堆栈中具有绝对位置的下一个元素
- JavaScript是否在每次递归调用时启动一个新的堆栈?
- 我如何采取一个缩小的javascript堆栈跟踪,并运行它对源映射,以获得适当的错误
- 是node.js + express(后端)+ emberjs(客户端)一个合理的堆栈为我的项目
- 动态更改URL,而不需要将前一个添加到历史堆栈
- 另一个IE错误:堆栈溢出在第0行,而使用jquery地址或至少ajax
- Highcharts -如何在一个系列中获得堆栈的值
- 意味着js堆栈,调试Angular错误:fnPtr不是一个函数
- 为什么这个递归函数给我一个“最大调用堆栈大小超过”错误
- 打开一个新的选项卡会丢失本地存储中的arraylist javascript堆栈溢出
- (为什么)有一个“自称”的指令在一个有限的n -repeat导致一个堆栈溢出从无限递归