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