这是一个无限循环的递归函数。
<html>
<body>
<script type="text/javascript">
function repeat(x){
document.write(x+" ");
repeat(x+1);
}
repeat(1);
</script>
</body>
</html>
使用该函数,我可以看到内存不足之前在那里发生了多少递归调用。第一次,我在 Firefox 上运行它。
结果 -> 1 2 3 .... 最多 40536
现在,我刷新页面
结果 -> 1 2 3 ... 最多 46046
!!再次刷新或在不同的浏览器上运行,我得到了不同的结果。
这怎么可能?javascript中递归的调用堆栈逻辑/限制是什么?