递归就是将一个大问题分解成 n 个相似的小问题, 然后不断地调用自身去解决这些小问题, 从而求出结果.
递归如果没有限制的话就会造成堆栈上限溢出.
递归 就是自己执行自己
- var i=1;
- function abc(){
- i++;//i==2
- if(i>3) return;
- abc1();
- console.log(i);// 第二次打印 4
- }
- abc();
- function abc1(){
- i++;//i==3
- if(i>3) return;
- abc2();
- console.log(i);// 第一次打印 4
- }
- function abc2(){
- i++;//i==4
- if(i>3) return;
- abc();
- console.log(i);
- }
阶乘:
公式: n! = n * (n-1) * ... * 1
- (function(){
- var i = 5;
- // 阶乘
- var antre= function(num){
- if (num> 0) {
- return num * antre(num - 1);
- } else {
- return 1; // 0 的阶乘也是 1, 因为 1!= 1*0!
- }
- }
- document.write(i + "的阶乘是"+ antre(i));
- })();
来源: http://www.bubuko.com/infodetail-3502577.html