javascript中的偽陣列

2021-09-13 01:44:48 字數 1376 閱讀 2507

,祝碼農同胞們早日走上人生巔峰,迎娶白富美~~~

假如有這樣一段**

123

4567

891011

1213

1415

1617

1819

lang="en">

charset="utf-8">

documenttitle>

head>

id = 'ul'>

li>

li>

li>

li>

ul>

body>

var liarr = document.getelementbyid('ul')

console.dir(liarr.children)

script>

html>

去看控制台看看

上圖就是乙個偽陣列,長相很像陣列,但是將他的原型_proto_開啟看看,它沒有陣列的spliceconcatpop等方法

特點

具有length屬性

按索引方式儲存陣列

不具有陣列的方法

1

2

array.prototype.slice.call(liarr.children)

借用陣列原型方法

123

4567

891011

12

var arr = array.prototype.slice.call(liarr.children);

array.prototype.foreach.call(liarr.children, function(v) );

// push

// some

// every

// filter

// map

// ...

可以簡化為

1

2

array.prototype.slice.call(liarr.children) 

// 此時已經改變了 this 指向,使得 liarr.children 擁有了真陣列的原型方法

偽陣列沒有陣列array.prototype的屬性值,型別是object,而陣列型別是array陣列是基於索引的實現, length 會自動更新,而物件是鍵值對

Javascript 偽陣列 js中的偽陣列

js中允許以鍵值対的方式來儲存屬性,並以下標的方式來訪問,我們再手動給它加上一些類似陣列的方法,便可以模擬出和陣列一樣的操作 建立乙個偽陣列 let v new object v.length 2 v 0 ok v 1 hello v a aaa v window window v name nam...

JavaScript中的陣列

陣列 引數 返回值原陣列是否改變 1 向陣列尾部新增push 引數可以是乙個或多個 返回值是新增後陣列的長度 原陣列改變 2 刪除陣列的最後一項pop 沒有引數 返回值是刪除的那個數 原陣列改變 3 向陣列的頭部新增unshift 引數可以是乙個或多個 返回值是新增後陣列的長度 原陣列改變 4 刪除...

JavaScript中的陣列

1.1基本資料型別 以number型別為例number 報錯,error is not defined number nan,nan是非數值,乙個特殊的數值 number 1 1 乙個單純的數字 number 1 1 乙個單純的數字 new number 1 number,乙個物件,具有物件方法也就...