Raj*_*amy 14 javascript callstack event-loop
基本上调用栈将开始流行了函数调用一个接一个,当最后的函数调用返回.但是当我尝试创建一个接近其最大值的调用堆栈时,An uncaught expression就会被提升.
//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();
Run Code Online (Sandbox Code Playgroud)
所以上面的代码在我的Chrome版本49.0.2623.112 m中给我一个例外,如下所示,
未捕获的异常
<true
请注意,上述错误中没有消息.我的问题是,
堆栈中的最后一个函数调用已返回true,这意味着未超出堆栈大小.为什么没有返回该堆栈中的其他函数调用?这个空白异常消息的原因是什么?
这里的问题是
console.log('finished');
Run Code Online (Sandbox Code Playgroud)
这为调用堆栈添加了一些额外的函数,可以超出限制,但是通过异常处理,无论如何都会执行代码.
尝试在没有console.log的情况下运行它,你会发现你达到了极限,看到了真或异.
| 归档时间: |
|
| 查看次数: |
365 次 |
| 最近记录: |