国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

重論JavaScript偽數(shù)組的種種

jay_tian / 3339人閱讀

摘要:偽數(shù)組的偽數(shù)組理解什么是偽數(shù)組定義但是有屬性以下是常見偽數(shù)組對象偽數(shù)組轉(zhuǎn)為真數(shù)組自定義偽數(shù)組類數(shù)組從對象構(gòu)建偽數(shù)組的兩個條件具有具有中任意一個并調(diào)用最終結(jié)果就是生成這個屬性具有名為的方法類數(shù)組當(dāng)作數(shù)組使用的原理相當(dāng)于的鍵名上述也可以用來寫特

偽數(shù)組

javascript的偽數(shù)組理解

什么是偽數(shù)組?

定義:obj instanceof Array === false 但是有l(wèi)ength屬性

以下是常見偽數(shù)組:

arguments

NodeList、HTMLCollection

jQuery對象

偽數(shù)組轉(zhuǎn)為真·數(shù)組

Array.prototype.splice.call(obj)

自定義偽數(shù)組 類數(shù)組
//從對象構(gòu)建偽數(shù)組的兩個條件:
//1. 具有l(wèi)ength || 具有pushunshiftpopshift中任意一個并調(diào)用(最終結(jié)果就是生成length這個屬性)
//2. 具有名為splice的方法 
var obj={
    length:0,
    splice(){}
};
console.log(obj);

var obj2={
    push:[].push, 
    splice(){}
};
obj2.push();
console.log(obj2);
類數(shù)組當(dāng)作數(shù)組使用的原理:length相當(dāng)于obj的鍵名
var obj={
    length:0,
    splice(){},
    push:Array.prototype.push
};
obj[0]=10;

obj.push(1,2,3);
console.log(obj);//[1,2,3,splice:f,push:f]

var obj2={
    length:1,
    splice(){},
    push:Array.prototype.push
};
obj2[0]=10;

obj2.push(1,2,3);
console.log(obj2);//[10,1,2,3,splice:f,push:f]

//上述push也可以用apply來寫
{   push:function () {
  return [].push.apply(this,arguments);
}}
特別的,兩種DOM偽數(shù)組的區(qū)別 1. getElementsByTagName 得到的是 HTMLCollections類
// 如果有一個ID為"test"的元素,可以直接取得
document.getElementsByTagName("div").test

如上,ID元素會被直接列在HTMLCollections對象里的同名鍵中

item(),length,namedItem()

2.querySelector 得到的是 NodeList類
document.querySelectorAll("div").forEach((a,b,c)=>{
    console.log("第一個參數(shù):" + a + "值");
    console.log("第二個參數(shù):" + b + "鍵");
   console.log("第三個參數(shù):" + c + "自身");
});

forEach()

item(),length

典型ES6對象特性,entries,keys,values

共性
for(let i=0;i

實際上,通過控制臺觀察發(fā)現(xiàn),兩者都具備iterator接口,都可以支持for ... of語法

相比來講,querySelector內(nèi)置forEach,會更方便

援引Arguments來說事

const {
   callee,//函數(shù)本身
   length,//參數(shù)長度
   [..."所有傳入的參數(shù)"]//可以用下標(biāo)獲得所有的按順序得到的參數(shù)
}=arguments;

此外,arguments也具備iterator接口,可以直接用for...of遍歷

總結(jié):

偽數(shù)組基本上屬于一個概念問題,只需要知道的是--偽數(shù)組的原型一定不是數(shù)組,所以,不會有數(shù)組的所有方法,在使用的時候不能想當(dāng)然的去直接用Array.prototype方法比如push,pop,concat等等

偽數(shù)組轉(zhuǎn)為真數(shù)組的方法有好多種,列下思路:

1.遍歷偽數(shù)組存入真數(shù)組

2.Array.prototype.splice.call(obj)

3.Array.from()

4.原型繼承,arr.__proto__=Array.prototype

5.其他工具庫中的方法,如jQuery中的makeArray()toArray()等

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/92017.html

相關(guān)文章

  • javascript高級程序設(shè)計》筆記_數(shù)組 稀疏數(shù)組 數(shù)組

    摘要:數(shù)組是數(shù)據(jù)的有序列表,與其他語言不同的是,數(shù)組的每一項可以保存任何類型的數(shù)據(jù)。如下的代碼創(chuàng)建的就是一個密集數(shù)組稀疏數(shù)組與密集數(shù)組相反,并不強制要求數(shù)組元素是緊密相連的,即允許間隙的存在。 數(shù)組是數(shù)據(jù)的有序列表,與其他語言不同的是,ECMAScript 數(shù)組的每一項可以保存任何類型的數(shù)據(jù)。也就是說,可以用數(shù)組的第一個位置來保存字符串,用第二位置來保存數(shù)值,用第三個位置來保存對象, 以此類...

    pepperwang 評論0 收藏0
  • js中數(shù)組操作

    摘要:使用兩種方式實現(xiàn)劉備張飛關(guān)羽通過循環(huán)累加劉備張飛關(guān)羽可以把數(shù)組中的元素鏈接成字符串劉備張飛關(guān)羽將一個字符串?dāng)?shù)組的元素的順序進(jìn)行反轉(zhuǎn)。 數(shù)組API API: Application Programming Interface,應(yīng)用程序編程接口; js中對象提供的方法就叫做API; instanceof 檢測一個對象是否是數(shù)組;(用來對付復(fù)雜數(shù)據(jù)類型;) // 簡單數(shù)據(jù)類型 typeo...

    Terry_Tai 評論0 收藏0
  • Javascript-數(shù)組

    摘要:什么是偽數(shù)組偽數(shù)組是一個含有屬性的對象例如常見的偽數(shù)組對象偽數(shù)據(jù)如何轉(zhuǎn)成標(biāo)準(zhǔn)數(shù)組使用源碼解析行取數(shù)據(jù)開始值轉(zhuǎn)結(jié)束值直接取的參數(shù)有則使用開始值為負(fù)數(shù),重新計算值,從尾部往前推算負(fù)數(shù)的絕對值超過長度,開始值賦值為開始值超過長度開始值賦值為結(jié)束值 什么是偽數(shù)組 偽數(shù)組是一個含有l(wèi)ength屬性的json對象 例如: { 0: 1, 1: 2, length: 2 }...

    Jackwoo 評論0 收藏0
  • JavaScript-數(shù)組

    摘要:什么是數(shù)組數(shù)組是值的有序集合。這個位置用數(shù)字表示叫索引數(shù)組用字符串表示叫關(guān)聯(lián)數(shù)組。 什么是數(shù)組 數(shù)組是值的有序集合。數(shù)組中的每個值叫一個元素,每個元素在數(shù)組中都有一個唯一的位置。這個位置用數(shù)字表示叫索引數(shù)組;用字符串表示叫關(guān)聯(lián)數(shù)組。數(shù)組的元素可以是不同的類型可以動態(tài)的向數(shù)組差人新元素,或者刪除指定元素 一維數(shù)組 定義數(shù)組 定義數(shù)組的方式有三種 /*數(shù)組字面量方式定義數(shù)組*/ var a...

    XanaHopper 評論0 收藏0
  • ES6 for..of 和 Generator,從數(shù)組 jQuery 對象說起

    摘要:引用自可迭代對象和迭代器不以規(guī)矩,不成方圓為了使某個對象成為可迭代對象象,它必須實現(xiàn)方法,也就是說,它得有一個是的屬性。的遍歷,絕對應(yīng)該用。 pseudo 英 [sju:d??] 美 [su:do?]adj.假的,虛偽的n.[口]假冒的人,偽君子 pseudo-array 英 [sju:d???re?] 美 [sju:d???re?][計] 偽數(shù)組 jQuery 對象是偽數(shù)組 兩個...

    Harriet666 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<