JavaScript递归的理解(最详细)

简介: JavaScript递归的理解(最详细)

工作中闭包使用很多,递归很少用到,但是也是都要掌握的

递归:函数自己调用自己,跟循环类似,他为了避免无限的递归,需要设置一个递归终止点

function sum(n){
//递归终止点 如果函数体内出现return,无论在return在哪里,return下面的代码都不会在执行
//函数里面return直接执行退出栈操作,所以下面的代码不会执行
if(n===1){
return 1;
}
//递归 
return n+sum(n-1);
}
console.log(sum(10))

调用栈:

10+sum(9)

9+sum(8)

8+sum(7)

7+sum(6)

······

2+sum(1)

所有的递归都可以转换成循环的形式,但是有些时候循环不是那么直观

菲波那切数列使用递归实现

function fei(n){
if(n<=1){
return 1;
}
return  fei(n-1)+fei(n-2);
}
console.log(fei(5))
//8
相关文章
|
JSON JavaScript 前端开发
js树形菜单 如何用递归制作一个简单的树形菜单
js树形菜单 如何用递归制作一个简单的树形菜单
259 0
|
存储 JavaScript 前端开发
JavaScript中的递归函数
JavaScript中的递归函数
129 0
|
JSON JavaScript 数据格式
js递归树形菜单
js递归树形菜单
100 0
|
5月前
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
245 19
|
7月前
|
JavaScript 前端开发 测试技术
|
前端开发 JavaScript
JavaScript递归菜单栏
JavaScript递归菜单栏
JavaScript递归菜单栏
|
JSON JavaScript 前端开发
JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级
JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级
|
缓存 JavaScript 前端开发
|
数据采集 缓存 JavaScript
JavaScript递归函数的设计与优化
JavaScript递归函数的设计与优化
|
JavaScript 前端开发 测试技术
了解JS递归
了解JS递归
116 1
下一篇
oss云网关配置