JavaScript 中 Array-Like 数据结构的作用
在前端开发中,我们经常使用 querySelectorAll 和 document.body.getChildren 等方法与 dom 交互。这些方法返回的结果是类数组类型,而不是真正的数组。因此,在操作这些数据之前,我们需要通过拓展运算符或 Array.from 等方法将它们转换为真数组。
类数组的意义
- 兼容性: 早期 JavaScript 中的数组非常简陋,因此许多早期的 API 都没有考虑数组。类数组类型兼容这些早期 API,例如函数的 arguments 对象也是类数组。
- 性能考虑: 相比于真数组,类数组具有更好的性能。这可以提高 DOM 操作的效率,因为 DOM 操作是一项相对耗时的任务。
- API 设计: DOM 被设计为独立于任何特定语言。这意味着 DOM API 不应依赖于 JavaScript 特定的功能,例如数组。
DOM 方法不直接返回真数组的原因
立即学习“前端免费学习笔记(深入)”;
尽管 DOM API 看起来与 JavaScript 紧密集成,但实际上它只是“使用”了 JavaScript。DOM API 规范由不同的组织制定,与 JavaScript 标准独立。因此,DOM API 不会直接使用 JavaScript 中的数组类型。