20170710筆記

數(shù)據(jù)類型檢測(cè)有4種方法

  • type of 主要用于基本數(shù)據(jù)類型檢測(cè),不能具體檢測(cè)出引用數(shù)據(jù)類型
  • constructor 可以檢測(cè)出當(dāng)前這個(gè)對(duì)象具體屬于哪個(gè)類
  • instance of (obj instance of Object ) 判斷摸個(gè)對(duì)象是否屬于某個(gè)類,返回的應(yīng)該是個(gè) 布爾值
  • Object.prototype.toString.call() 可以打印出對(duì)象的詳細(xì)信息;

函數(shù)基本知識(shí)

  • 函數(shù) 由兩部分 構(gòu)成
    • 函數(shù)的定義階段
    • 調(diào)用階段

函數(shù)定義3步驟

1、開辟一個(gè) 內(nèi)存空間,給這個(gè)空間起個(gè)名字
2、 把函數(shù)體內(nèi)所有JS代碼,作為字符串,存在這個(gè)內(nèi)存空間中
3、 把空間地址,賦值給函數(shù)名;

函數(shù)調(diào)用2步驟

1、 形成一個(gè)私有作用域;
2、 把內(nèi)存中的字符串,作為JS代碼來執(zhí)行

關(guān)于函數(shù)的返回值

  • 返回值: return
  • undefined出現(xiàn)的情況:
    • 函數(shù)沒有寫return,返回的就是undefined
    • 函數(shù)寫了return,但是沒有賦值,返回的還是undefined
    • 沒有給實(shí)參值,返回是undefined
    • 沒有此屬性,返回是undefined

參數(shù)

  • 參數(shù)包含實(shí)參和形參
    • 形參:形參在函數(shù)定義階段
    • 實(shí)參:在函數(shù)調(diào)用階段
    • 定義形參,但沒有傳實(shí)參,拿到的是undefined;
    • arguments.callee:拿到的是當(dāng)前函數(shù)本身;
  • 函數(shù)包含有名函數(shù)和匿名函數(shù)
    1:匿名函數(shù):給元素的某個(gè)屬性綁定一個(gè)函數(shù)表達(dá)式;
    2:匿名函數(shù):函數(shù)自己調(diào)用自己;

閉包:

1、當(dāng)函數(shù)被調(diào)用的時(shí)候,會(huì)形成一個(gè)私有作用域,保護(hù)里面的變量不受外界的干擾,函數(shù)的這種保護(hù)機(jī)制,叫做閉包;
2、自函數(shù)可以使用父函數(shù)的私有變量;

數(shù)組常用的方法

增加,刪除和替換

  • 給末尾增加 push()
    • 功能:給數(shù)組末尾增加一個(gè)或多個(gè)
    • 參數(shù):有
    • 返回值:數(shù)組的長(zhǎng)度
    • 原始數(shù)組是否改變:是
  • 從末尾刪除 pop()
    • 功能:刪除數(shù)組最后一個(gè)
    • 參數(shù):無
    • 返回值:被刪除的內(nèi)容
    • 原始數(shù)組是否改變:是
  • 給開頭增加 unshift()
    • 功能:給數(shù)組開頭增加一個(gè)或多個(gè)
    • 參數(shù):有,一個(gè)或多個(gè)
    • 返回值:數(shù)組的長(zhǎng)度
    • 原始數(shù)組是否改變:是
  • 從數(shù)組開頭刪除 shift()
    • 功能:從數(shù)組開頭刪除一項(xiàng)
    • 參數(shù):無
    • 返回值:被刪除的內(nèi)容
    • 原始數(shù)組是否改變:是
  • 操作數(shù)組的任何位置,進(jìn)行增加,刪除,替換 splice
    • 刪除

      • 參數(shù)是一個(gè)的時(shí)候,代表從當(dāng)前索引,一直刪完
      • 參數(shù)是兩個(gè)的時(shí)候 splice(2,3)
        • 從索引2開始,刪除3個(gè)
        • 被刪除的內(nèi)容以一個(gè)新數(shù)組的形式返回
    • 增加

      • 參數(shù) 三個(gè) ary.splice(2,0,'aa','bb')
        • 從索引2開始,增加'aa' 'bb',增加的內(nèi)容插入到索引2的前面
        • 返回值:無
        • 原始數(shù)組是否改變:是
    • 替換

      • 參數(shù) 三個(gè) ary.splice(2,2,'aa','bb')
      • 返回值:被刪除的內(nèi)容,以一個(gè)新數(shù)組的形式返回;
      • 原始數(shù)組是否改變:是

數(shù)組克隆和拼接

  • slice(n,m) 從索引n克隆到索引m,但是包前不包后;
    • 原始數(shù)組不變
    • 題:克隆第n項(xiàng)到第m項(xiàng)[n,m],包含n和m,請(qǐng)用數(shù)組的一個(gè)方法來實(shí)現(xiàn);
      • ary.slice(n-1,m)
    • 克隆 ary.slice(0) / ary.slice()
  • concat 拼接
    • ary1.concat(ary2,ary3);
    • 克隆 ary.concat() 不要傳參;

數(shù)組的翻轉(zhuǎn)和排序

  • 數(shù)組的翻轉(zhuǎn) reverse()
    • 返回值:就是翻轉(zhuǎn)后的新數(shù)組
    • 原始數(shù)組發(fā)生改變;
  • 數(shù)組的排序 sort()
ary.sort(function(n,m){
    return n-m; //從小到大排
    //return m-m  //從大到小排
})

數(shù)組轉(zhuǎn)字符串

  • ary.toString() 把數(shù)組轉(zhuǎn)成以逗號(hào)分割的字符串;
  • ary.join('拼接形式')
    • 配合eval()可以實(shí)現(xiàn)數(shù)學(xué)運(yùn)算

數(shù)組常用但不兼容的方法

  • ary.indexOf() 查找數(shù)組中是否有某項(xiàng),如果有返回對(duì)應(yīng)內(nèi)容的索引,如果沒有返回-1;
  • ary.forEach()
    • forEach接收兩個(gè)參數(shù),一個(gè)callback,thisArg
    • callback接收三個(gè)參數(shù):1)item 2)index 3)input
    • thisArg用來改變callback中的this指向;
    • forEach 沒有返回值,但是map有返回值
  • ary.map()

數(shù)組小總結(jié)

  • 給數(shù)組末尾增加一項(xiàng)有哪些方法?
    • push()
    • splice(ary.length,0,'xxx')
    • ary[ary.length]=xxx;
最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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