
【計】 pseudo-array
bogus; fake; false; puppet
【醫】 pseud-; pseudo-
【計】 array
【化】 array
僞數組(Pseudo-Array)是計算機編程領域中的術語,指具有部分數組特性但缺乏完整數組方法的類數組對象。根據《現代JavaScript高級程式設計》和MDN Web Docs技術文檔的定義,其核心特征表現為:
索引訪問機制
僞數組對象可通過數字索引(如obj訪問元素,且具備length屬性反映元素數量,這與标準數組行為一緻。典型示例包括浏覽器環境中的NodeList和函數的arguments對象。
方法缺失特性
盡管形似數組,僞數組不具備Array.prototype的原生方法(如push、slice)。ECMAScript語言規範明确指出,這種設計差異源于對象原型鍊的構造方式不同。
類型轉換方式
通過Array.from方法或擴展運算符(...)可将僞數組轉換為标準數組。《JavaScript權威指南》中示例顯示:
const nodeList = document.querySelectorAll('div');
const realArray = Array.from(nodeList); // 轉換為标準數組
該概念在浏覽器DOM操作、函數參數處理等場景廣泛應用。W3C DOM标準文檔特别指出,NodeList等接口設計為僞數組形式,既保證内存效率又維持與數組的互操作性。
僞數組(又稱類數組)是 JavaScript 中一種特殊的對象,其特性與數組相似,但并非真正的數組。以下是詳細解釋:
length
屬性的普通對象,通過索引存儲數據,例如:var obj = { 0: 'a', 1: 'b', length: 2 };
length
屬性,且值應為非負整數;length
不為 0,則必須存在從 0
到 length-1
的索引屬性;push
、pop
等)。arguments
對象document.querySelectorAll
返回的 NodeList
,或 document.getElementsByTagName
的結果。Array.prototype.slice.call
var arr = Array.prototype.slice.call(arrayLike);
Array.from
var arr = Array.from(arrayLike);
特性 | 真數組 | 僞數組 |
---|---|---|
原型方法 | 支持 push 、pop 等 |
不支持 |
繼承關系 | Array 實例 |
普通對象 |
長度動态性 | 自動更新 | 需手動維護 length |
僞數組通過模仿數組的索引和長度特性,在特定場景(如函數參數處理、DOM 操作)中提供便利,但需注意其功能局限性。如需使用數組方法,建議優先轉換為真數組。
【别人正在浏覽】