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
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!