document.getElementsByTagName获取的是数组还是对象?

这里的变量li到底是对象还是数组呢?

图片描述

阅读 7.7k
5 个回答

是一个伪数组,本质是一个对象。但是它不能调用数组的方法,如果需要操作可以使用call/apply借用数组的方法。

Array.prototype.xxx.call(xxx,...)

是对象,可以使用 Array.from 转换成数组

Array.from(document.getElementsByTagName('div'))
Array.from(document.getElementsByTagName('div')) instanceof Array

可以说是类数组(array-like)对象,有length属性,不过并不是数组,还有函数的参数(arguments)也是类数组,多留意的话,诸如之类还有很多

数据集合既可以用数组表示,也可以用对象表示;数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。

这在JS里面,叫做类数组对象,参考arguments

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