函数内调用函数和递归


1. 函数内调用别的函数;

//求两个数中的最大值;

 function getMax(a,b){

            return a > b ? a : b; //申明一个比较两个数大小函数,返回值为较大的那个;相当于if(a>b){return a} else{ return b};
        }

//求三个数中的最大值
        function getMax1(a,b,c){ //申明一个 比较三个数大小的函数;
            var max = getMax(a,b); // 这里可以挑用上面那个函数求出两个数中叫大得那个数, 然后申明一个max变量保存;
            return max > c ? max :c; // 再用 较大的那个数同第三个数比较,原理同上;
        }


        alert(getMax(15,13,10)); // 这个函数调用比较简单,下面的递归可能有点绕;


2函数内调用自身函数(递归);


//  求1!+2!+3!+....+n!              

// 我们分析这个题其实就是求阶乘 1*1 + 2*1 + 3*2*1 + 4*3*2*1  + 5*4*3*2*1...*n


function calc(n){

            if( n > 0){          // 当参数n传进来时,如果不对n做判断,会一直执行。

          
                return calc(n-1) * n; //   返回 n * n-1; 然后函数clac 又接收 n-1这个参数 继续向下乘; 举个例子,假如n传进来的是3;第一次调用函数calc时;返回3*2

// 然后函数calc 会把2 作为参数继续调用;返回2*1; 然后1作为参数传到cala里1-1=0不满足下一次执行条件返回1;
            }
            return 1; 这里返回1 是为了防止 函数条件不满足时;会返回undefine  (函数没有返回值的话,会默认返回undefine),最后会乘出一个NaN出来。
        }
           alert( calc(10));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值