javascript 为什么需要 Array-Like 这样的数据结构?
突然很好奇,在前端日常开发中,需要经常和 dom 打交道,所以经常要用到 querySelectorAll
和 document.body.getChildren
等方法,但是它们的返回值都是一个类数组类型,我们就需要用一些方法,比如拓展运算符、Array.from 等将它们转换为真数组 来进行操作。
问题: 类数组的意义在哪里?dom 的哪些方法为什么不直接返回一个真数组呢?
回复
1个回答

test
2024-07-18
- 兼容性:早期的 Javascript 的数组很简陋,所以很多早期的 API 都没有考虑数组。例如函数的 arguments 对象也是类数组。而 ES6 的剩余参数就是数组
- 性能考虑:类数组相较与数组有更好的性能,可以提高 DOM 操作的效率
- API 设计:DOM 被设计为不依赖于任何特定语言
尽管 DOM API 看起来与 JavaScript 绑定,但它实际上仅仅是“使用”了 JavaScript 而已。DOM API 规范由 W3C 制定,而 JavaScript 标准由 TC39 委员会制定。他们是两个互不统属的独立组织。JavaScript 标准中不会包含 HTMLElement
等 DOM 相关的东西,DOM API 亦不会依赖于 JavaScript。
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容