JS 的 Array
是伪数组,跟其他语言中“一段连续的内存空间”不同。
JS 里下面两种数据结构没有本质的不同(因为原型链不同导致的原型方法不同这是另一回事儿),在底层都是哈希表:
let arr = [
'one',
'two',
'three'
]
let obj = {
'0': 'one',
'1': 'two',
'2': 'three',
'length': 3
}
arr[0]
当对象看的话就是就是 obj['0']
,两者是一回事儿,类型当然相同。
P.S. JS 中其实也有真·数组,但不是 Array
,而是 Int8Array
、Uint8Array
这些 TypedArray
。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…