帮忙解释下为什么结果是2

function fun(n) {
  if (n < 0){
    return 0
  }
  if (n === 1){
    return 1
  }
  if (n === 2){
    return 2
  }
  return fun(n-1)
}
console.log(fun(4))  //为什么结果是2呢?
阅读 1.7k
4 个回答

亲,这是一个递归,执行fun(4)的时候,没有匹配结果会return fun(3),执行fun(3)的时候也没有匹配结果,会继续执行fun(2),n=2的时候匹配到了结果,所以返回2,结果递归

从上到下 试着理解每一步在干嘛 你就不会这样问啦

递归操作,每次执行不满足上边条件就把参数穿进去再次执行。知道满足if条件 返回结果

递归哦 n=3,4都没有匹配结果 直到n=2返回2.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题