在javascript中,数组是一个特殊的对象,其property名为正数组,且其length属性会随着数组成员的增减而发生变化,同时又从arry构造函数中继承一些用于进行数组操作的方法,而对于一个普通的对象来说,如果它的所有property名均为正整数,同事也有相应的length属性,那么虽然该对象并不是由Array构造函数所创建的,它依然呈现出数组的行为,在这种情况下,这些对象被称为"类数组对象"
如:
var o ={0:42,1:52,2:63,length:3}
console.log(0);
与普通对象不同的是,类数组对象拥有一个特性:可以在类数组对象上应用数组的操作方法。
JavaScript类型化数组是一种类似数组的对象,并提供了一种用于访问原始二进制数据的机制。 正如你可能已经知道,Array
存储的对象能动态增多和减少,并且可以存储任何JavaScript值。JavaScript引擎会做一些内部优化,以便对数组的操作可以很快。然而,随着Web应用程序变得越来越强大,尤其一些新增加的功能例如:音频视频编辑,访问WebSockets的原始数据等,很明显有些时候如果使用JavaScript代码可以快速方便地通过类型化数组来操作原始的二进制数据将会非常有帮助。
但是,不要把类型化数组与正常数组混淆,因为在类型数组上调用 Array.isArray()
会返回false
。此外,并不是所有可用于正常数组的方法都能被类型化数组所支持(如 push 和 pop)。