JS学习笔记——函数拓展(递归函数)

本文介绍了JavaScript中的递归函数,通过概念解释和实例演示帮助理解递归的执行过程。并提供三个递归函数练习题:1到100的累加和、Fibonacci序列计算、20的阶乘,辅助读者掌握递归应用。
摘要由CSDN通过智能技术生成

概念解释

我们先来看两个函数:
1)简单的一个死循环递归函数:

//这个函数不是真正意义上的递归函数,因为没有结束条件,无法停止退出,所以会一直在控制台打印出hello,
//这样的死循环递归最后会导致浏览器内存溢出宕机
function fn(){
	console.log("hello")			//执行代码
	fn() 		//调用自身
	}

2)常用的递归函数格式:

//计算N到I之间的数之和(N<I)
function fn(n,i){
	if(n == i){			//当n 等于i 时,  返回i的值并结束函数(这是这个递归函数的结束条件)
		return n 		
	}else{			
		return fn(n+1,i)+n		//当n 不等于 i时,调用fn()函数,得到的返回值加上n的值后返回(这便是递归的核心调用自身)
	}
}

在对以上两个函数有一定印象后我们再来说什么是递归函数,递归函数是一类能自我调用的函数,类似循环结构,能做一些重复的运算,在递归函数中最重要的是结束条件和调用自身,当我们知道如何去设置结束条件以及如何再次调用函数时就掌握递归函数了。
让我们再来看看一个递归函数具体的执行过程:

//计算N到I之间的数之和(N<I)
function fn(n,i){
	if(n == i){			
		return n 		
	}else{			
		return fn(n+1,i)+n		
	}
}

console.log(fn(5,10))		//在控制台打印5到10之间的数之和
//根据我们输入的参数可以将上面的函数写成
//将n替换为5,i替换为10
function fn(5,10){
	if(5 == 10){		//结束条件不满足	
		return n 		
	}else{			//执行else
		return fn(5+1,10)+5			返回的是fn(6,10)+5,那么我们就需要再运行一次fn(),这次的参数是6和10	
	}
}
//这次将n替换为6,i替换10
function fn(6,10){
	if(6 == 10){			//不满足结束条件		
		return 6 		
	}else{				//执行else
		return fn(6+1,i)+6		
/*
返回fn(7,10)+6,即fn(6,10)运行后得到的返回值为fn(7,10)+6,换而言之,
fn(5
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值