12.19 js中递归优化(递归爆栈)
时间:2020-12-19 21:22:07
收藏:0
阅读:41
es6增加了尾调用优化,但是目前支持的浏览器或者js引擎只有苹果的safari和名为Duktape的嵌入式JavaScript引擎。
- 未启用尾调用优化,递归爆栈
<script>
//递归
function fn(n) {
if (n < 1) {
return
}
console.log(n);
fn(n - 1)
}
fn(100000)
</script>

- 启用尾调用优化
<script>
//启用递归尾部调用优化
function fn(n) {
if (n < 1) {
return
}
console.log(n);
return fn(n - 1)
//return fn(n - 1)会被编译器改成goto count(n-1),
//在不创建新栈的情况下重复执行该函数
}
fn(100000)
</script>
原文:https://www.cnblogs.com/xjt31/p/14160861.html
评论(0)