search

Home  >  Q&A  >  body text

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

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


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

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

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

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

阿神阿神2900 days ago428

reply all(4)I'll reply

  • 黄舟

    黄舟2017-04-10 14:44:02

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

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:44:02

    a= []
    b=(function(){return arguments})()
    c=document.querySelectorAll('p')
    d=document.getElementsByTagName('p')
    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 也是有差别的反正. 你自己比比看,有结果了告诉我们下. 我也想看详细的分析

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 14:44:02

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

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 14:44:02

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

    reply
    0
  • Cancelreply