js递归无法正常赋值

Posted ash-sky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js递归无法正常赋值相关的知识,希望对你有一定的参考价值。

错误:

var b = 10;
    var c = 0;
    var a = abc();
    function abc() 
      if (c == b)
        return 1
       else
        b--;
        abc()
      
    
    console.log(a)    //无法正确赋值   undefined

正确:

var b = 10;
    var c = 0;
    var a = abc();
    function abc() 
      if (c == b)
        return 1
       else
        b--;
        return abc()
      
    
    console.log(a)        // 1
原因:最后一次进行递归操作的时候值是返回了,但是只是返回到了递归自己调用的函数里,而最初的函数是没有返回值的·,所以打印出来就是undefined,如果想要函数最后一次计算所得值,就需要在每次调用该函数的时候进行return,每一次return都是把最新的函数调用返回到外层的函数调用,所以通过调用函数就能拿到值了。

以上是关于js递归无法正常赋值的主要内容,如果未能解决你的问题,请参考以下文章

Prolog:递归无法正常工作

我使用 dislousreGroup 作为递归,但视图更新无法正常工作。有啥办法吗?

02_基础语法和递归

Raty JS 在 Vex 模式下无法正常工作

使用 annotator.js 的注释无法正常工作

Passport.js 多重登录系统无法正常工作