JavaScript-递归

Posted wyp-king

tags:

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

递归就是将一个大问题分解成 n 个相似的小问题,然后不断地调用自身去解决这些小问题,从而求出结果。

递归如果没有限制的话就会造成堆栈上限溢出。
递归 就是自己执行自己
 1 var i=1;
 2 function abc(){
 3         i++;//i==2
 4         if(i>3) return;
 5         abc1();
 6         console.log(i);//第二次打印4
 7     }
 8 
 9 abc();
10 
11 function abc1(){
12         i++;//i==3
13         if(i>3) return;
14         abc2();
15         console.log(i);//第一次打印4
16     }
17 
18 
19 function abc2(){
20         i++;//i==4
21         if(i>3) return;
22         abc();
23         console.log(i);
24     }

阶乘:

公式:n! = n * (n-1) * … * 1

 1 (function(){
 2     var i = 5;
 3     // 阶乘
 4     var antre= function(num){
 5         if (num > 0) {
 6             return num * antre(num - 1);
 7         } else {
 8             return 1;   // 0的阶乘也是1,因为 1!= 1*0!
 9         }
10     }
11     document.write(i + " 的阶乘是 "+ antre(i));
12 })();

 

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

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

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

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

30秒就能看懂的JavaScript 代码片段

常用Javascript代码片段集锦