1.ES6常用功能與常見問題分析-(遞歸-尾遞歸)


遞歸:

function  a(n) {

if(n===0){

return 1;

}

return n*a(n-1);

}

a(3);

尾遞歸:尾遞歸是一種遞歸的寫法,可以避免不斷的將函數壓棧最終導致堆棧溢出。通過設置一個累加參數,並且每一次都將當前的值累加上去,然后遞歸調用。

 

function f (n,total = 1){

if(n===0){

return total

}

return f(n-1,n*total)

}

f(3,1);

注意:尾遞歸不一定會將你的代碼執行速度提高;相反,可能會變慢。不過,尾遞歸可以讓你使用更少的內存,使你的遞歸函數更加安全 (前提是你要開啟harmony模式)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM