为什么这个递归函数这个变量j等于nan?

1.为什么外部这个J没有赋值成功,而是返回了nan?


<!DOCTYPE html>

<html>


    <head>

        <meta charset="UTF-8">

        <title></title>

    </head>


    <body>

        <script type="text/javascript">

            var j;


            function indexx(index) {

                if(index == 1) {

                    return 1;

                }

                 j= index * indexx(index - 1);

            }

            indexx(4);

            console.log(j);

        </script>

    </body>


</html>


慕桂英3389331
浏览 628回答 2
2回答

梦里花落0921

var j;&nbsp; &nbsp; function indexx(index) {&nbsp; &nbsp; &nbsp; &nbsp; if(index == 1) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 1;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; return j= index * indexx(index - 1);&nbsp; &nbsp; }&nbsp; &nbsp; indexx(4);&nbsp; &nbsp; console.log(j);不等于1的时候return的是undefined啊

沧海一幻觉

一个函数运行的时候没有返回值,将返回这个函数本身。当你的index不等于1的时候,indexx函数没有返回值,会把自己本身当成一个结果进行计算,函数进行数值计算的结果就是NaN
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript