色偷偷超碰_亚洲成肉网_日日干夜夜撸_黄色一级片子_男人午夜视频_久久精品99久久久久久

JavaScript之遞歸 詳解!

2019-12-1    seo達(dá)人

首先了解一下遞歸的定義:



遞歸:遞歸函數(shù)自己調(diào)用自己,且函數(shù)內(nèi)部必須有結(jié)束條件、否則就是一個(gè)死循環(huán);



 遞歸案例:求 n 的階乘 (循環(huán) || 遞歸)



階乘公式先了解一下:







即n的階乘 =  n(n-1)的階乘,如歸使用for循環(huán)來做這件事件就很簡單:



    //for循環(huán)

    function fact(n) {

        let end = 1;

        for (var i = 1; i <= n; i++) {

            end
= i

        }

        return end

    }

    console.log(fact(5)) //5的階乘 120

再看看遞歸的做法:



    //遞歸

    function fact(n) {

        if (n === 1) {

            return 1 //結(jié)束條件

        }

        return n fact(n - 1) //此處的fact函數(shù)相當(dāng)于當(dāng)前隊(duì)列的階乘

    }

    console.log(fact(5)) //5的階乘

解析: 公式 n
(n-1)!  則函數(shù)內(nèi)部只需要返回 n該函數(shù) n-1,



即 n
(n-1)!  == nfact(n-1)  







 看一下內(nèi)部隊(duì)列順序,當(dāng)形參為5時(shí) 階乘為 5
fact(n-1),直至形參n = 1時(shí),fact函數(shù)有了返回值 1,有了結(jié)束條件后整個(gè)函數(shù)結(jié)束自掉,返回階乘結(jié)果。



遞歸的優(yōu)點(diǎn):遞歸的實(shí)現(xiàn)明顯要比循環(huán)簡單得多。



遞歸的缺點(diǎn):



1、效率低:遞歸由于是函數(shù)自己掉自己,而函數(shù)調(diào)用是有時(shí)間和空間的消耗的:每一次函數(shù)調(diào)用,都需要在內(nèi)存棧中分配空間以保存參數(shù)、返回地址以及臨時(shí)變量,而往棧中壓入數(shù)據(jù)和彈出數(shù)據(jù)都需要時(shí)間。



2、性能差:調(diào)用棧可能會(huì)溢出,每次函數(shù)調(diào)用會(huì)在內(nèi)存棧中分配空間,而每個(gè)進(jìn)程的棧的容量是有限的,當(dāng)調(diào)用的層次太多時(shí),就會(huì)超出棧的容量,從而導(dǎo)致棧溢出。 



總結(jié):對(duì)于JavaScript而言,能用循環(huán)解決的事情、盡量不要考慮遞歸、 慎用! 


日歷

鏈接

個(gè)人資料

存檔

主站蜘蛛池模板: 中文字幕手机在线观看 | 69精品久久久| 久久久久国产视频 | 国产二区三区 | 日本熟伦人妇xxxx | 综合成人在线 | 午夜大片| 婷婷视频网 | 香港之夜完整在线观看 | 亚洲精品久久久久国产 | 精品成人在线 | 成人综合站 | 大地网资源在线观看免费高清 | 69午夜 | a毛片毛片av永久免费 | 欧美性大交 | 日韩福利视频导航 | 亚洲一区二区三区在线免费观看 | 亚av| 91在线小视频 | 激情综合婷婷 | 99在线免费观看视频 | 久久久精品影院 | 亚洲毛片网站 | 欧美天堂在线视频 | 久久在线精品视频 | 久久澡| 中文字幕+乱码+中文字幕一区 | av黄在线 | 国产欧美91| 国产丝袜在线 | 懂色av粉嫩av蜜乳av | 亚洲视频在线一区 | 性爱视频免费 | 欧美在线小视频 | 国产一区在线视频观看 | 中文字幕一区二区av | 国产一二三在线观看 | 哥布林的洞窟在线观看 | 日韩在线播放视频 | 韩国一级黄色录像 |