首页 > 解决方案 > 递归只能在函数表达式中使用吗?使用函数声明在简单的代码中尝试过,它仍然有效,我错过了什么吗

问题描述

我听说递归只能在函数表达式中使用,但我已经在函数声明中尝试过它并且效果很好。我可以通过编写一个简单的代码来计算前 n 个自然数的总和来证明这一点。

1. 使用函数表达式:

var addNum = function sumTest(n)
{
  if (n === 1)
    return 1;
  return (n + sumtest(n - 1));
};

console.log(addNum(100)); // output will be 5050 in console.

2.使用函数声明:

function sumTest(n) {
  if (n === 1) {
    return 1;
  } else {
    return (n + sumTest(n - 1));
  }
}

console.log(sumTest(100)); // output 5050 in console.

那么函数声明中的递归也成功了吗?

我在这里错过了什么吗?

标签: javascriptrecursion

解决方案


推荐阅读