前端 偽陣列詳解

2021-07-22 06:53:56 字數 1066 閱讀 1860

1.符合以下條件的物件成為偽陣列;

a.具有length屬性;

b.按索引方式儲存資料;

c.不具有陣列的push,pop等方法;

如: function 內的 arguments;

var fakearray01 = ;//這是乙個標準的有偽陣列物件

2.偽陣列的實現;

var fakearray01 = ;//沒有length下標對應的值

var arr01 = array.prototype.slice.call(fakearray01);

alert(arr01[0]);//undefined

var fakearray02 = ;//length不是數值

var arr02 = array.prototype.slice.call(fakearray02);

alert(arr02[1]);//undefined

3、偽陣列的 slice 的內部實現過程為:

function slice(start, end) 

return result;

} 可以看出,slice 並不需要 this 為 array 型別,只需要有 length 屬性即可。並且 length 屬性可以不為 number 型別,當不能轉換為數值時,tounit32(this.length) 返回 0.

根據以上結論可以得出:fakearray01被轉換成了lenth為2的陣列,其值都被初始化為undefined,fakearray02被轉換成了length為0的陣列,自然訪問下標為1的元素返回undefined

可以通過array.prototype.slice.call(fakearray)將偽陣列轉變為真正的array物件。

var arr01 = array.prototype.slice.call(fakearray01);

alert(arr01[0]);//a

var arr02 = .slice.call(fakearray01);

alert(arr02[0]);//a

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...

前端學習 Css 偽元素

first letter 表示第乙個字元 first line 表示文字的第一行 before 選中元素的最前邊,一般該偽類都會結合content一起使用,通過content可以向指定位置新增內容。after 選中元素的最後邊,一般該偽類都會結合content一起使用,通過content可以向指定位...

偽陣列和真陣列

什麼是偽陣列 1 偽陣列是乙個物件 2 這個物件必須要有length屬性 3 如果這個物件的length不為0,那麼必須要有按照下標儲存的資料 不是偽陣列 var obj var obj2 是偽陣列 var obj3 var obj4 var obj5 如何判斷資料是不是偽陣列 1 不是物件直接乾掉...