javascript 为什么需要 Array-Like 这样的数据结构?

突然很好奇,在前端日常开发中,需要经常和 dom 打交道,所以经常要用到 querySelectorAlldocument.body.getChildren 等方法,但是它们的返回值都是一个类数组类型,我们就需要用一些方法,比如拓展运算符、Array.from 等将它们转换为真数组 来进行操作。

问题: 类数组的意义在哪里?dom 的哪些方法为什么不直接返回一个真数组呢?

阅读 1.3k
1 个回答
✓ 已被采纳
  1. 兼容性:早期的 Javascript 的数组很简陋,所以很多早期的 API 都没有考虑数组。例如函数的 arguments 对象也是类数组。而 ES6 的剩余参数就是数组
  2. 性能考虑:类数组相较与数组有更好的性能,可以提高 DOM 操作的效率
  3. API 设计:DOM 被设计为不依赖于任何特定语言

尽管 DOM API 看起来与 JavaScript 绑定,但它实际上仅仅是“使用”了 JavaScript 而已。DOM API 规范由 W3C 制定,而 JavaScript 标准由 TC39 委员会制定。他们是两个互不统属的独立组织。JavaScript 标准中不会包含 HTMLElement 等 DOM 相关的东西,DOM API 亦不会依赖于 JavaScript。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏