首页 > javascript 数组和类数组 有什么区别

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

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


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

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

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

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


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


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


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 也是有差别的反正. 你自己比比看,有结果了告诉我们下. 我也想看详细的分析


http://www.zhihu.com/question/24702250

【热门文章】
【热门文章】