JS高級(jí)筆記5

時(shí)間:2019/11/3

4).高階函數(shù)(對(duì)其他函數(shù)進(jìn)行操作的函數(shù),它接收函數(shù)作為參數(shù)或?qū)⒑瘮?shù)作為返回值輸出)

5).閉包(一個(gè)作用域可以訪問(wèn)另一個(gè)函數(shù)的局部變量,該局部變量所在的函數(shù)形成閉包)

兩種形式:一個(gè)函數(shù)使用另一個(gè)函數(shù)中的局部變量或在全局使用函數(shù)中的局部變量;

// 閉包主要作用:延長(zhǎng)變量的作用范圍
1.
function fn() {
  var num = 10;
  return function() {
    console.log(num);
  }
}

var f = fn(); 
f(); // 10

2.
function fn() {
  var num = 10;
  return function() {
    console.log(num);
    num++;
  }
}

var f = fn(); // 創(chuàng)建了fn的引用f,使得fn執(zhí)行完后num變量沒(méi)有被立即銷(xiāo)毀,容易造成內(nèi)存泄漏,需手動(dòng)釋放引用(引用賦值為null)
f(); // 10
f(); // 11
f(); // 12
f = null;
var f = fn();
f(); // 10
總結(jié).jpg

6).遞歸
1.遞歸函數(shù)(一個(gè)函數(shù)在內(nèi)部可以調(diào)用其本身),遞歸中必須加退出條件(return)。

案例:
1.遞歸求1~n的階乘;
2.遞歸求斐波那契數(shù)列;
3.遞歸遍歷多層Json格式數(shù)據(jù)。

2.深拷貝和淺拷貝
1).淺拷貝只是拷貝一層(簡(jiǎn)單數(shù)據(jù)類(lèi)型),更深層次對(duì)象級(jí)別的只拷貝引用(復(fù)雜數(shù)據(jù)類(lèi)型拷貝地址);
2).深拷貝拷貝多層,每一級(jí)別的數(shù)據(jù)都會(huì)拷貝;
3).Object.assign(target, ...sources) ES6新增方法實(shí)現(xiàn)淺拷貝
4).封裝函數(shù)實(shí)現(xiàn)深拷貝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,689評(píng)論 1 32
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔,今天18年5月份再次想寫(xiě)文章,發(fā)現(xiàn)簡(jiǎn)書(shū)還為我保存起的...
    Jenaral閱讀 3,179評(píng)論 2 9
  • 第3章 基本概念 3.1 語(yǔ)法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類(lèi)型 5種簡(jiǎn)單數(shù)據(jù)類(lèi)型:Unde...
    RickCole閱讀 5,543評(píng)論 0 21
  • 一直沒(méi)有時(shí)間好好看一下swift,最近復(fù)習(xí)了一遍語(yǔ)法,這里記錄swift學(xué)習(xí)過(guò)程中遇到的一些問(wèn)題和要點(diǎn),和Obje...
    bomo閱讀 2,571評(píng)論 0 25
  • 1. 我讓自己擁有善解人意、體貼的老公。 2.我讓自己擁有健康,樂(lè)觀,積極,勇敢的孩子們。 3. 我讓我的事業(yè)完成...
    RubyXia閱讀 179評(píng)論 0 0

友情鏈接更多精彩內(nèi)容