<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 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)用??赡軙绯觯看魏瘮?shù)調(diào)用會在內(nèi)存棧中分配空間,而每個(gè)進(jìn)程的棧的容量是有限的,當(dāng)調(diào)用的層次太多時(shí),就會超出棧的容量,從而導(dǎo)致棧溢出。 



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


          日歷

          鏈接

          個(gè)人資料

          存檔

          日韩精品久久久久久久电影蜜臀| 久久精品国产欧美日韩99热| 欧美成a人片免费看久久| 精品熟女少妇av免费久久| 久久精品国产99久久久古代| 久久精品视频91| 久久97久久97精品免视看| 国产激情久久久久影院小草 | 国产精品一区二区久久精品涩爱| 国产免费久久精品丫丫| 久久精品18| 亚洲欧美日韩精品久久亚洲区| 精品久久久一二三区| 人妻丰满AV无码久久不卡| 日韩乱码人妻无码中文字幕久久| 精品无码久久久久久尤物| 国产成人无码精品久久久久免费| 久久男人中文字幕资源站| 2021国内精品久久久久久影院| 日韩精品久久久久久久电影蜜臀| 久久亚洲高清观看| 久久综合鬼色88久久精品综合自在自线噜噜| 亚洲AⅤ优女AV综合久久久| 日韩精品久久无码人妻中文字幕| www亚洲欲色成人久久精品| 大香伊人久久精品一区二区| 久久国产欧美日韩精品| 久久久久综合中文字幕| 午夜不卡久久精品无码免费 | 国产91久久综合| 中文成人无码精品久久久不卡 | 中文字幕久久精品无码| 日韩亚洲欧美久久久www综合网 | 国产成人久久精品激情| 国产亚洲美女精品久久久| 77777亚洲午夜久久多人| 爱做久久久久久| 99久久99这里只有免费费精品 | 久久精品国产亚洲av瑜伽| 无码超乳爆乳中文字幕久久| 成人午夜精品久久久久久久小说 |