首页 > Web开发 > 详细

12.19 js中递归优化(递归爆栈)

时间:2020-12-19 21:22:07      阅读:39      评论:0      收藏:0      [点我收藏+]

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>

12.19 js中递归优化(递归爆栈)

原文:https://www.cnblogs.com/xjt31/p/14160861.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!