JavaScript类型数组

JavaScript类型的数组是类似于数组的对象,并提供了一种用于访问原始二进制数据的机制。

数组对象会动态增长和收缩,并且可以具有任何JavaScript值。JavaScript引擎执行优化,以便这些数组快速。

注意-类型化数组不要与普通数组混淆,因为在类型化数组上调用Array.isArray()会返回false。此外,类型数组并不支持所有适用于普通数组的方法

JavaScript类型的数组是使用缓冲区和视图实现的。

缓冲区是代表数据块的对象;它没有格式可言,也没有提供访问其内容的机制。

为了访问缓冲区中包含的内存,您需要使用一个视图。视图提供了数据类型,起始偏移量和元素数量,这些数据将数据转换为类型化数组。

示例

// create a buffer with a fixed length of 16-bytes
let buffer = new ArrayBuffer(16);
//在真正使用此缓冲区之前,我们需要创建一个视图。
//让我们创建一个视图,将缓冲区中的数据视为32位有符号整数的数组:
let int32View = new Int32Array(buffer);
//我们可以像访问普通数组一样访问数组中的字段
for (let i = 0; i < int32View.length; i++) {
   int32View[i] = i * 2;
}
console.log(int32View);

输出结果

Int32Array { [Iterator] 0: 0, 1: 2, 2: 4, 3: 6 }