當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript --- 函数的优化(尾调用优化)
生活随笔
收集整理的這篇文章主要介紹了
javascript --- 函数的优化(尾调用优化)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從一個熟悉的Fibonacci數列的實現開始:
function Fibonacci (n) {if ( n <= 1) { return 1};return Fibonacci(n -1) + Fibonacci(n-2); }以上代碼很簡單…
但執行以下代碼
會發現編譯工具,卡住不動.
原因在于:遞歸調用(函數調用自身),每次都會占用一定內存來保存調用幀…Fibonacci(100),直接導致堆棧溢出…
解決方法:
改為尾遞歸調用(代碼如下):
執行以下代碼看看:
console.log (Fibonacci2(100)); console.log(Fibonacci2(1000));
誒,成功了…
下面介紹優化的原理:
函數f(),最后一步都是調用g().
最終的調用幀可以縮減到1個g(3)…
因此大大的減少了內存的消耗
參考 《ES6標準入門》(第3版) P126
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的javascript --- 函数的优化(尾调用优化)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 若依框架深度学习
- 下一篇: javascript --- 尾递归优