老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

JavaScript中遞歸是什么

這篇文章將為大家詳細講解有關(guān)JavaScript中遞歸是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供白山網(wǎng)站建設(shè)、白山做網(wǎng)站、白山網(wǎng)站設(shè)計、白山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、白山企業(yè)網(wǎng)站模板建站服務(wù),10余年白山做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

JavaScript中的遞歸就是指函數(shù)反復調(diào)用自己的過程,函數(shù)的調(diào)用是建立在堆棧中,在堆棧的頂部函數(shù)調(diào)用總是第一個彈出的。我們可以通過瀏覽器自帶的開發(fā)工具來查看堆棧的調(diào)用

真正的理解JavaScript 中的遞歸是非常困難的,有的人甚至把它稱為不必要的內(nèi)存密集型和復雜版本的“for循環(huán)”。接下來將在文章中為大家詳細介紹這個知識,希望對大家有所幫助。

JavaScript中遞歸是什么

編程中的遞歸是什么?

實質(zhì)上, 遞歸是指函數(shù)或子例程反復調(diào)用自己的時候。所有遞歸函數(shù)調(diào)用都必須有一個基本情況。基本情況是讓函數(shù)返回值而不是再次調(diào)用自身的特定條件。為了防止遞歸函數(shù)無限調(diào)用自身, 必須存在基本情況。如果省略或?qū)懭氩徽_, 就會出現(xiàn)錯誤。

不正確的基本情況指的是一個基本情況它不包括所有可能的用戶輸入, 這可能會導致因通過基本情況的特定輸入而導致無休止的遞歸函數(shù)的調(diào)用, 從而導致調(diào)用堆棧溢出。

函數(shù)調(diào)用存儲在調(diào)用堆棧上

函數(shù)的調(diào)用都是存儲在堆棧中,調(diào)用堆棧是堆棧數(shù)據(jù)結(jié)構(gòu)的特定實現(xiàn)。它是一個 LIFO (最后進入, 首先輸出) 數(shù)據(jù)結(jié)構(gòu), 這就意味著放置在堆棧頂部的函數(shù)調(diào)用是第一個彈出的。

例:計算5的階乘

輸出結(jié)果為:120

上述代碼中,當解析到console.log(factorial(5));首先console.log()將被推送到堆棧上,之后factorial(5) 其結(jié)果將傳遞到console.log()函數(shù)中,當我們輸入factorial(5)時, 調(diào)用堆棧將如下所示

JavaScript中遞歸是什么

語句return num * factorial(nextNum);表示階乘函數(shù)返回num (本例中表示5) 乘以遞歸函數(shù)調(diào)用的返回值, 其中4被傳入。實質(zhì)上, 該函數(shù)返回以下值

return 5 * factorial(4);

因為factorial(4)是一個函數(shù), 所以我們將把這個函數(shù)調(diào)用推送到調(diào)用堆棧上。現(xiàn)在我們將重復相同的過程, 直到我們到達基本情況 i. 當num等于1時。此時, 調(diào)用堆棧將如下所示。

JavaScript中遞歸是什么

一旦我們到達基本情況, 函數(shù)factorial(1)返回值1。因此現(xiàn)在我們知道factorial(1)等于 1, factorial(2) ) 也返回一個非函數(shù)值: 2 * factorial(1) , 即 2 * 1 = 2。

接著, factorial(3)返回3 * factorial(2), 等于6。等等, 直到我們得到factorial(5), 它返回 5 * 24 = 120。

如何查看調(diào)用堆棧

如果使用的是 chrome web 瀏覽器,可按 f12 (在 Windows 上), 打開chrome 開發(fā)人員工具。在頂部選項卡上, 您將看到菜單標簽, 如元素、配置文件、控制臺、網(wǎng)絡(luò)、源等。單擊"源"。如下所示

JavaScript中遞歸是什么

通過該開發(fā)工具可以直觀地查看調(diào)用堆棧。當遞歸函數(shù)調(diào)用num === 1的條件時, 它將返回1。之后, 當函數(shù)調(diào)用返回時, 每個階乘函數(shù)調(diào)用都將從堆棧中彈出。

關(guān)于JavaScript中遞歸是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


當前名稱:JavaScript中遞歸是什么
當前鏈接:http://www.xueling.net.cn/article/jgssde.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 毛片毛片毛片毛片毛片毛片毛片毛片 | 日韩伦理久久 | 无码av一区在线观看免费 | 得得啪在线视频 | 国产v日产∨综合v精品视频 | 野花社区www高清图片 | 午夜影院在线播放 | xxx国产精品视频 | 动漫91| 999精品网 | 日日视频 | 日韩欧美在线免费观看 | 日本无人区码卡二卡三卡 | 欧美一级特黄aaaaaa在线看片 | 日日日干干干 | 国产精品2020 | 国产精品制服 | 久草资源在线 | 最近中文字幕完整在线看一 | 成人依依网站亚洲综合久 | 国产精品免费看久久久8精臀av | 欧美成ee人免费视频 | 激情男女高潮射精AV免费 | 日韩人妻熟女中文字幕 | 在线亚洲高清揄拍自拍一品区 | 99久久中文字幕三级久久日本 | 午夜福利妺妺嘿嘿影视 | 久草福利资源在线 | 亚洲人成色777777精品音频 | 亚洲狠狠婷婷综合久久久久图片 | 天天天天天天天天操 | 一区二区三区免费在线观看 | 中国老太卖婬HD播放 | a级片日韩 | 国产免费天天看高清影视在线 | 精品国产一区二区三区2021 | 日韩精品一区二区三区免费观影 | 国产91艳遇在线观看 | 国产亚洲精品成人av久久果冻 | 国产性av | 亚洲一区在线免费 |