数据结构学习之理解递归执行顺序

从下面代码的输出结果来理解递归执行的顺序

function some(i){
i++;
if(i<10){
some(i);
}
console.log(i);
return i;
}
i=5;
i=some(i);

执行结果
在这里插入图片描述
递归函数执行到递归的时候则先不往下执行,而是开始新一轮的遍历,直到递归退出的条件成立,此时从本次开始依次往回执行刚才剩下的未执行的函数。

例子对比

function some(student){
    student.age--;
    if(student.age>10){
    some(student);
    }
    console.log(student.age);
    return student.age;
    }
  var student = {
  name:'xiaoming',
age:'20'
}
some(student)
   var i = student.age;
console.log(i);

执行结果
在这里插入图片描述
原因分析:递归的执行还是按上述思路执行,造成这种结果的原因是因为对象是按引用存储

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值