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
相关文章
|
3月前
|
JSON JavaScript 前端开发
js树形菜单 如何用递归制作一个简单的树形菜单
js树形菜单 如何用递归制作一个简单的树形菜单
40 0
|
4月前
|
JSON JavaScript 数据格式
js递归树形菜单
js递归树形菜单
|
7月前
|
JSON JavaScript 数据格式
js递归树形菜单
js递归树形菜单
|
11天前
|
JavaScript
node.js递归拼凑成树形结构
node.js递归拼凑成树形结构
11 0
|
3月前
|
Rust 前端开发 JavaScript
【面试题】JavaScript中递归的理解
【面试题】JavaScript中递归的理解
|
4月前
|
JavaScript 前端开发 数据处理
【JavaScript 数据处理-番外篇】手写了几个数据处理,都是用的递归
【JavaScript 数据处理-番外篇】手写了几个数据处理,都是用的递归
|
4月前
|
JavaScript 前端开发
【JavaScript 递归】判断两个对象的键值是否完全一致,支持深层次查询,教你玩转JavaScript脚本语言
【JavaScript 递归】判断两个对象的键值是否完全一致,支持深层次查询,教你玩转JavaScript脚本语言
|
4月前
|
JSON JavaScript 数据格式
JS递归树形菜单
JS递归树形菜单
17 1
|
5月前
|
JavaScript 前端开发
JavaScript递归:原理与实例
JavaScript递归:原理与实例
46 0
|
6月前
|
缓存 JavaScript
一个vuepress配置问题,引发的JS递归思考
这两天在尝试用语雀+vuepress+github 搭建个人博客。配置过程中遇到一个递归函数问题。。。