文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JavaScript怎么使用递归

2023-06-14 22:43

关注

这篇文章将为大家详细讲解有关JavaScript怎么使用递归,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

html有什么特点

1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,适合初学前端开发者使用。2、可扩展性:超级文本标记语言的广泛应用带来了加强功能,增加标识符等要求,超级文本标记语言采取子类元素的方式,为系统扩展带来保证。 3、平台无关性:超级文本标记语言能够在广泛的平台上使用,这也是万维网盛行的一个原因。4、通用性:HTML是网络的通用语言,它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。

递归:

函数中用调用函数自己,此时就是递归,递归一定要有结束条件

    function f1() {        console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:");        f1();    };    f1();//浏览器崩溃,因为没有结束条件——死循环改进如下:    var i=0;    function f1() {        i++;        if (i<5){            f1();        }        console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:");    };    f1();

小栗子:

递归实现:求n个数字的和 n=5 ------->5+4+3+2+1

//for 循环写法:    var sum=0;    for (var i=0;i<=5;i++){        sum+=i;    }    console.log(sum);----------------------分割线---------------------------   function getSum(x) {        if (x==1){          return 1        }        return x+getSum(x-1);    };    var sum1=getSum(5);    console.log(sum1);    console.log(getSum(10));

执行过程:
代码执行getSum(5)—>进入函数,此时的x是5,执行的是5+getSum(4),此时代码等待

此时5+getSum(4),代码先不进行计算,先执行getSum(4),进入函数,执行的是4+getSum(3),等待,先执行的是getSum(3),进入函数,执行3+getSum(2),等待,先执行getSum(2),进入函数,执行 2+getSum(1);等待,先执行getSum(1),执行的是x==1的判断,return 1,所以,

此时getSum(1)的结果是1,开始向外走出去

2+getSum(1) 此时的结果是:2+1

执行:

getSum(2)---->2+1

3+getSum(2) 此时的结果是3+2+1

4+getSum(3) 此时的结果是4+3+2+1

5+getSum(4) 此时的结果是5+4+3+2+1

    结果:15

再来几个:

    //递归案例:求一个数字各个位数上的数字的和:  123   --->6 ---1+2+3    //523    function getEverySum(x) {        if(x<10){            return x;        }        //获取的是这个数字的个位数        return x%10+getEverySum(parseInt(x/10));    }    console.log(getEverySum(1364));//5
 //递归案例:求斐波那契数列    function getFib(x) {        if(x==1||x==2){            return 1        }        return getFib(x-1)+getFib(x-2);    }    console.log(getFib(12));

关于“JavaScript怎么使用递归”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯