递归
定义:
在数学与计算机科学中,递归(Recursion)是指在函数的定义中使用函数自身的方法。实际上,递归,顾名思义,其包含了两个意思:递 和 归,这正是递归思想的精华所在。 {简单来说就是;指在当前方法内调用自己的这种现象}
优缺点:
优点:
1.递归的优点就是简洁、易于理解。
缺点:
1.递归通常会出现许多重复计算,导致时间复杂度高。
2.调用栈可能会溢出,其实每一次函数调用会在内存栈中分配空间,而每个进程的栈的容量是有限的,当调用的层次太多时,就会超出栈的容量,从而导致栈溢出。
模型
//递归函数的基础模型
let i = 0
function digui() {
i++
if (i ==5 ) {
return false
}
digui()
}
digui()
例子
题:用递归方法计算从1加到100的和
//先声明一个i
let i = 0
//在函数中加入一个形参
function fn(num) {
//判断参数是否==1 (如100不等于1 返回100)
if (num == 1) {
//返回这个参数
return num
}
//参数加上参数-1并返回 (比如 100+(100-1))
return num + fn(num - 1)
}
//函数调用传入实参
fn(100)
//在控制台打印
console.log(fn(100));