最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript遞歸函數(shù)定義和用法示例分析

 更新時(shí)間:2020年07月22日 17:23:08   作者:雨霖月寒  
這篇文章主要介紹了javascript遞歸函數(shù)定義和用法示例分析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

遞歸函數(shù):是指函數(shù)直接或間接調(diào)用函數(shù)本身,則稱該函數(shù)為遞歸函數(shù)。

這句話理解起來(lái)并不難,從概念上出發(fā),給出以下的例子:

function foo(){
 console.log("函數(shù) foo 是遞歸函數(shù)。");
 foo();
}

這個(gè)例子的 foo 函數(shù)就是一個(gè)遞歸函數(shù)。

當(dāng)你把這個(gè)函數(shù)拿到瀏覽器上運(yùn)行的時(shí)候,你會(huì)發(fā)現(xiàn)內(nèi)存溢出了,為什么呢?因?yàn)檫@個(gè)遞歸函數(shù)沒(méi)有停止處理或運(yùn)算的出口,因此這個(gè)遞歸函數(shù)就演變?yōu)橐粋€(gè)死循環(huán)。

那如何使用遞歸呢?

使用遞歸函數(shù)必須要符合兩個(gè)條件:

1、 在每一次調(diào)用自己時(shí),必須是(在某種意義上)更接近于解;

這句話怎么理解?

大家家里都有樓梯吧?比如從一樓走到二樓,那么我們的起點(diǎn)是一樓,目的地是二樓,當(dāng)你往上每走一個(gè)臺(tái)階是不是越接近二樓,也就是越接近目的地。
因此這句話可以這樣理解:函數(shù)每一次調(diào)用自己時(shí),就越接近于我們期望它完成的任務(wù)的終點(diǎn)。

2、必須有一個(gè)終止處理或計(jì)算的出口。

這句話的意思是:必須要有一個(gè)標(biāo)準(zhǔn)的標(biāo)志,讓函數(shù)結(jié)束調(diào)用函數(shù)自身。
比如,怎么知道你已經(jīng)走到二樓了呢?當(dāng)你看到有個(gè)門,門牌上寫著 2F 的,然后推開(kāi)它跨過(guò)去,那么你就到二樓了。

用遞歸輸出對(duì)象里包含的所有屬性值(包括對(duì)象里的子孫對(duì)象):

var obj = {
 a:{
  name:"john",
  age:26,
  sex:"male",
  child:{
   firstChild:"mak",
   laseChild:"loy"
  }
 },

 b:{
  name:"joe", 
  age:28, 
  sex:"female", 
  child:{
   firstChild:"bill", 
   secondChild:"ruth", 
   laseChild:"yoki"
  }
 }
};

function getObjValue(obj){
 for(var k in obj){
  if(typeof obj[k] !== "object"){
   console.log(obj[k]); //遞歸出口
  }else{
   getObjValue(obj[k]); //函數(shù)調(diào)用函數(shù)自身
  }
 }
};

getObjValue(obj);

// 輸出結(jié)果:

// name=john
// age=26
// sex=male
// firstChild=mak
// laseChild=loy
// name=joe
// age=28
// sex=female
// firstChild=bill
// secondChild=ruth
// laseChild=yoki

使用建議:在使用遞歸時(shí),要注意對(duì)遞歸函數(shù)的參數(shù)類型的檢查,一定要保證有一個(gè)終止處理或計(jì)算的出口。否則很容易演變?yōu)樗姥h(huán),從而造成內(nèi)存溢出。

到此這篇關(guān)于javascript遞歸函數(shù)定義和用法示例分析的文章就介紹到這了,更多相關(guān)javascript遞歸函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript常用正則驗(yàn)證函數(shù)實(shí)例小結(jié)【年齡,數(shù)字,Email,手機(jī),URL,日期等】

    JavaScript常用正則驗(yàn)證函數(shù)實(shí)例小結(jié)【年齡,數(shù)字,Email,手機(jī),URL,日期等】

    這篇文章主要介紹了JavaScript常用正則驗(yàn)證函數(shù),結(jié)合實(shí)例形式總結(jié)分析了javascript針對(duì)年齡、數(shù)字、Email、手機(jī)、URL、日期等格式常用正則驗(yàn)證技巧,需要的朋友可以參考下
    2017-01-01
  • 教你用typescript類型來(lái)推算斐波那契

    教你用typescript類型來(lái)推算斐波那契

    斐波那契是自然界與社會(huì)中存在的一種數(shù)學(xué)規(guī)律,下面這篇文章主要給大家介紹了關(guān)于如何用typescript類型來(lái)推算斐波那契的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • JavaScript字符串操作的四個(gè)實(shí)用技巧

    JavaScript字符串操作的四個(gè)實(shí)用技巧

    在制作前端頁(yè)面的過(guò)程中,經(jīng)常需要用到JavaScript進(jìn)行邏輯處理,很多時(shí)候都需要對(duì)字符串進(jìn)行操作,這篇文章主要給大家介紹了關(guān)于JavaScript字符串操作的四個(gè)實(shí)用技巧,需要的朋友可以參考下
    2021-07-07
  • 微信小程序中使用wxss加載圖片并實(shí)現(xiàn)動(dòng)畫效果

    微信小程序中使用wxss加載圖片并實(shí)現(xiàn)動(dòng)畫效果

    記錄微信小程序中使用wxss加載圖片并實(shí)現(xiàn)動(dòng)畫的方式,最終實(shí)現(xiàn)loading效果。本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-08-08
  • 基于JS實(shí)現(xiàn)一個(gè)小型編譯器

    基于JS實(shí)現(xiàn)一個(gè)小型編譯器

    這篇文章主要為大家介紹了如何利用JS實(shí)現(xiàn)一個(gè)小型編譯器,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定的參考價(jià)值,需要的可以參考一下
    2022-04-04
  • JS實(shí)現(xiàn)百度搜索框關(guān)鍵字推薦

    JS實(shí)現(xiàn)百度搜索框關(guān)鍵字推薦

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)百度搜索框關(guān)鍵字推薦,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 解析ES6中的解構(gòu)賦值(數(shù)組,對(duì)象,嵌套,默認(rèn)值)

    解析ES6中的解構(gòu)賦值(數(shù)組,對(duì)象,嵌套,默認(rèn)值)

    解構(gòu)賦值是一種特殊的語(yǔ)法,它使我們可以將數(shù)組或?qū)ο蟆安鸢敝烈幌盗凶兞恐?,因?yàn)橛袝r(shí)這樣更方便,接下來(lái)通過(guò)本文給大家介紹ES6中的解構(gòu)賦值(數(shù)組,對(duì)象,嵌套,默認(rèn)值),需要的朋友可以參考下
    2022-11-11
  • javascript canvas封裝動(dòng)態(tài)時(shí)鐘

    javascript canvas封裝動(dòng)態(tài)時(shí)鐘

    這篇文章主要為大家詳細(xì)介紹了javascript canvas封裝動(dòng)態(tài)時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • javascript中正則表達(dá)式語(yǔ)法詳解

    javascript中正則表達(dá)式語(yǔ)法詳解

    這篇文章主要介紹了javascript中正則表達(dá)式語(yǔ)法詳解,文章通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Javascript 獲取LI里的內(nèi)容

    Javascript 獲取LI里的內(nèi)容

    使用Javascript(簡(jiǎn)稱JS)取得LI里的內(nèi)容(簡(jiǎn)單易懂的代碼實(shí)例)
    2008-12-12

最新評(píng)論

海林市| 邢台县| 盐源县| 昆山市| 宁海县| 彩票| 潢川县| 洛宁县| 绥滨县| 荆州市| 巴中市| 洛扎县| 翼城县| 东明县| 葵青区| 双牌县| 乌什县| 安顺市| 镇远县| 惠州市| 栾川县| 虎林市| 永登县| 清水河县| 成安县| 宣化县| 出国| 临洮县| 孟村| 祥云县| 建湖县| 沿河| 会宁县| 定结县| 库车县| 兴山县| 贵州省| 杨浦区| 卢氏县| 吴川市| 汉源县|