函数内调用函数和递归

本文通过实例介绍如何在JavaScript中实现函数间的相互调用及递归调用,包括求最大值和阶乘等实用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值