定型数组(Typed Arrays)是JavaScript中用于处理二进制数据的一种特殊数组。它们是在ES6中引入的,主要用于提高数据处理的效率和性能,特别是在需要处理大量数值数据的情况下,如WebGL中的图形处理。
组成部分
ArrayBuffer
ArrayBuffer 是一个固定长度的二进制数据缓冲区(连续的内存空间),可以通过 ArrayBuffer 构造函数来创建,例如const buffer = new ArrayBuffer(32),创建了一个32字节的内存区域,每个字节默认值都是0。
但是问题来了,ArrayBuffer只负责,创建内存区域,不负责进行数据的读取。操作数据就需要通过视图(View)了。
View
定性数组就是一种View。View可以理解成对这段内存空间的控制器、读取器。
TypedArray View:
TypedArray本身是一种抽象类,在使用时都是使用它的子类型,包括Int8Array
、Uint8Array
、Int16Array
、Uint16Array
、Int32Array
、Uint32Array
、Float32Array
、Float64Array
等。
const buffer = new ArrayBuffer(10);
const a = new Int16Array(buffer);
console.log(a);
也可以
const a = new Int16Array(10);
console.log(a);
注意:这里a所占的内存空间大小是不一样的。
所有定型数组
其实就是c++里面数组的设计,可以按c++里面数组的使用方式来使用。