js 递归执行顺序

2022-05-09 14:49:11 浏览数 (1)

递归实现:求n个数字的和 n=5---> 5 4 3 2 1

代码语言:javascript复制
//

    //函数的声明
    function getSum(x) {
      if (x == 1) {
        return 1;
      }
      return x   getSum(x - 1);
    }
    //函数的调用
    console.log(getSum(5));

执行过程:

代码执行getSum(5)--->进入函数, 此时的x是5, 执行的是5 getSum(4), 此时代码等待

此时5 getSum(4), 代码先不进行计算, 先执行getSum(4), 进入函数, 执行的是4 getSum(3), 等待, 先执行的是getSum(3), 进入函数, 执行3 getSum(2), 等待,

先执行getSum(2), 进入函数, 执行 2 getSum(1); 等待, 先执行getSum(1), 执行的是x==1的判断,return 1,

所以, 此时getSum(1)的结果是1, 开始向外走出去

2 getSum(1) 此时的结果是:2 1

执行:

getSum(2)---->2 1

3 getSum(2) 此时的结果是3 2 1

4 getSum(3) 此时的结果是4 3 2 1

5 getSum(4) 此时的结果是5 4 3 2 1

结果:15

0 人点赞