
【计】 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 操作)中提供便利,但需注意其功能局限性。如需使用数组方法,建议优先转换为真数组。
保护性投资暴躁的人偿债基金收益传值催促控制电子放电丁基·乙基烯酮发矾费德里契氏征风道衬里分节器分块编译过期的异议机器可办认的惧色库蚊族临时垫板龙眼属卵蛋白培养基平行的平均时间破旧的犬尿喹啉酸鞣过了度的实际信用特别法案条件风险退款外渗物微成份