- 为什么有/用类数组(类数组的起源)
- 类数组如何存储数据
ps: 希望能带点相关链接或书籍
document.getElementsByTagName('input')
看起来像数组,有length
。但不属于Array
,所以数组相关操做都不行,比如forEach
,类数组要用for循环
去遍历
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
确切的说 JS 里根本就没数组,都是 Object。
JS 里的数组并不像其他语言中,是开辟一段连续的内存空间,按顺序存储。而 JS 里所谓的数组,其实是一个类似于字典的结构,所谓的数组下标就是 Key,其值就是 Value,在这一点上跟 Object 没什么不同,
arr[0]
本质上跟obj['key']
是一样的。所谓“类数组”,就是它有
length
这个属性,但是却不是继承自 Array 的原型链,也就是没有push
、concat
、filter
之类的原型链方法。