JS之递归
递归是什么?
调用自身函数称为递归函数
function fn(){
fn()
}
fn()
递归的作用和循环是基本一样的
编写递归函数,一定要包含两个条件
1.基线条件
2.递归条件
接下来我用几个实例为大家带来递归的用法
1.使用递归让延迟器有定时器的效果
function timer() {
setTimeout(() => {
console.log(1)
// 1s后重新调用自身
timer()
}, 1000)
}
timer()
2.使用递归求任意数的乘阶
function fun(num) {
// 如果num为1直接返回
if(num == 1){
return 1
}
// 我们利用递归
return fun(num - 1) * num
// 如何执行的呢?我们用num = 3来举例
// 当num = 3时 fun(3 - 1) * 3
// 然后递归继续调用num = 2 fun(2 - 1) * 2
// 然后递归继续调用num = 1 因为我们上面判断了如果num == 1
// return 1 终止
}
let result = fun(5)
console.log(result) // 120
3.使用递归斐波那契数列
function func(num) {
// num == 0 直接返回0
if(num == 0){
return 0
// num == 1 直接返回1
}else if(num == 1){
return 1
}
//前2个数想加 (num - 1)+(num - 2)
return func(num - 1) + func(num - 2)
}
let result = func(10)
console.log(result) //55
感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南