什么是递归,递归有哪些优点或缺点?
递归:如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。简单理解
:
函
数内部自己调用自己
,
这个函数就是递归函数
优点:结构清晰、可读性强
缺点:效率低、调用栈可能会溢出,其实每一次函数调用会在内存栈中分配空间,而每个进程
的栈的容量是有限的,当调用的层次太多时,就会超出栈的容量,从而导致栈溢出。
function fn(x, y) {
x += y
y ++;
if (y > 100) {
console.log(x);
return x
}
else {
fn(x, y) // fn()函数内部重复调用自身,在y<100时,会一直将x,y当参数执行fn()
}
}