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 不是物件直接乾掉...