递归的简要介绍和理解

Posted catEatBird

tags:

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

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 
 8 <body>
 9 <script>
10     /*
11     * 递归
12     *   函数自己(内部)调用自己,递归
13     *
14     *   递归,本质上就是一个循环
15     * */
16 
17 //    function fn1() {
18 //        fn1();
19 //    }
20 //    fn1();
21 
22 //    function fn() {
23 //        setTimeout(function () {
24 //            console.log(1);
25 //            fn();
26 //        }, 100);
27 //    }
28 //    fn();
29 
30 //    function fn1() {
31 //        console.log(1);
32 //        fn2();
33 //    }
34 //
35 //    function fn2() {
36 //        console.log(2);
37 //        fn1();
38 //    }
39 //
40 //    fn1();
41 </script>
42 </body>
43 </html>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>

<body>
<script>
/*
* 阶乘
* */

function factorial(n) {
if (n == 1) {
return 1;
}
return n * factorial(n-1);
}

/*
* 5 * factorial(4)
* 5 * 4 * factorial(3)
* 5 * 4 * 3 * factorial(2)
* 5 * 4 * 3 * 2 * factorial(1)
* 5 * 4 * 3 * 2 * 1
*
* 先调用的:factorial(5)
* 最后一次调用的:factorial(1)
*
* factorial(1)先执行完,factorial(5)是最后一次执行完成的
*
* 先进后出 -> FILO -> FirstInLastOut -> 栈
* 先进先出 -> FIFO -> FirstInFirstOut -> 队列
* */

console.log( factorial(5) );

</script>
</body>
</html>

以上是关于递归的简要介绍和理解的主要内容,如果未能解决你的问题,请参考以下文章

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!(转载)

vue递归组件的一些理解

深入理解TCP协议及其源代码-拥塞控制算法分析

Gif格式简要介绍

48个值得掌握的JavaScript代码片段(上)

欧几里得(辗转相除gcd)扩欧(exgcd)中国剩余定理(crt)扩展中国剩余定理(excrt)简要介绍