/* 递归 recursion
自己执行自己 */
var a = 1;
function fn(){
a++
if(a>50) return;
console.log(a)
fn()
console.log(a)
}
fn();
/* 不断的复制副本调用 在执行当前自身函数时 复制一个当前函数的副本去执行
直到条件满足 不去继续执行新的函数时 才一层层返回到最前面
20000次 同时开启一万多个函数 会造成堆栈上限溢出 */
// 递归深度遍历
// var obj={
// children:{
// children:{
// children:{
// children:{
// value:5
// },
// value:4
// },
// value:3
// },
// value:2,
// },
// value:1
// }
// console.log(obj.value);
// console.log(obj.children.value);
// console.log(obj.children.children.value);
// console.log(obj.children.children.children.value);
// console.log(obj.children.children.children.children.value);
// function fn(obj){
// console.log(obj.value);
// if(obj.children) fn(obj.children)
// }
// fn(obj);
/* recursion 递归 进行深度遍历
广度遍历 使用for循环进行遍历
递归函数 自己调用自己 在堆中复制一份函数副本用于调用 如果没有结束条件的话
会堆栈溢出 当前函数副本执行完毕 去执行上一个函数副本*/
js 递归的初体验
最新推荐文章于 2024-04-18 09:40:54 发布