javascript 数组和类数组 有什么区别

javascript 中 array / argument / querySelectorAll的返回值/getElementsByTagName返回值 有什么区别?


可能之前的问的方式不好,重新整理思路。拆分下问题

1 数组与类数组有什么区别 [] 和 argument之间的区别(老实说我应该去查文档)

2 argument 和 querySelectorAll返回值(Static Node List)/getElementsBy系列返回值(Live Node List)有什么区别。

@roshanca 给出知乎链接,回答了一部分问题

阅读 10.2k
4 个回答
a= []
b=(function(){return arguments})()
c=document.querySelectorAll('div')
d=document.getElementsByTagName('div')
set = [a,b,c,d]
for( i in set) console.log(set[i].constructor.prototype)
  [Symbol(Symbol.unscopables): Object]
  Object {}
  NodeList {item: function}
  HTMLCollection {item: function, namedItem: function}

大概是这样. 名相如实不相如.
1. 是array, 当然,数组的本质是 object
2. 第二个是个object.其实也是一个变种,不是纯的.记不清了
3,4 也是有差别的反正. 你自己比比看,有结果了告诉我们下. 我也想看详细的分析

主要的区别就是不同的对象有不同的方法吧,比如querySelectorAll返回的是NodeList对象,就没有Array的一些常用的API函数。

querySelectorAll是静态的集合,其他都是动态的集合

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