自己直接或间接调用自己本身 --函数调用发生在栈中
let a = 0;
function fun() {
console.log(++a);
fun();
}
fun();
优点:代码简洁 容易验证
缺点:要进行多次的调用,层数深的话会增加额外的栈处理,占用内存。递归次数太多的话,也会造成栈溢出
注意:跟循环比较像;递归有终止条件;可类比房子迷宫
(循环得特点是:速度快,结构简单,但是不能解决所有问题)
自己直接或间接调用自己本身 --函数调用发生在栈中
let a = 0;
function fun() {
console.log(++a);
fun();
}
fun();
优点:代码简洁 容易验证
缺点:要进行多次的调用,层数深的话会增加额外的栈处理,占用内存。递归次数太多的话,也会造成栈溢出
注意:跟循环比较像;递归有终止条件;可类比房子迷宫
(循环得特点是:速度快,结构简单,但是不能解决所有问题)