Array-Like 数据结构在 JavaScript 中的作用
背景
在前端开发中,经常使用 querySelectorAll 和 document.body.getChildren 等方法操作 dom。然而,它们返回的并不是真正的数组,而是类数组对象。
类数组的意义
类数组对象的存在有以下几个原因:
兼容性
立即学习“Java免费学习笔记(深入)”;
早期的 JavaScript 数组功能有限,许多早期 API 并未考虑数组。因此,一些非数组对象,如函数的 arguments 对象,也被设计为类数组。es6 引入的剩余参数也属于类数组。
性能
类数组对象相较于真正的数组拥有更好的性能,可以提高 DOM 操作的效率。
API 设计
DOM 被设计为独立于特定语言。尽管 DOM API 看似与 JavaScript 相关,但实际上它只是利用 JavaScript 进行操作。DOM API 规范由 W3C 制定,而 JavaScript 规范由 TC39 委员会制定。这两个组织独立运作,因此 DOM API 不会依赖于 JavaScript,JavaScript 规范也不会包含 HTMLElement 等 DOM 相关对象。