使用 TypedArrays

TypedArrays 是一组类型,为固定长度的可变二进制 ArrayBuffers 提供不同的视图。在大多数情况下,它们的行为类似于将所有指定值强制转换为给定数值类型的数组 。你可以将 ArrayBuffer 实例传递给 TypedArray 构造函数以创建其数据的新视图。

var buffer = new ArrayBuffer(8);
var byteView = new Uint8Array(buffer);
var floatView = new Float64Array(buffer);

console.log(byteView);  // [0, 0, 0, 0, 0, 0, 0, 0]
console.log(floatView); // [0]
byteView[0] = 0x01;
byteView[1] = 0x02;
byteView[2] = 0x04;
byteView[3] = 0x08;
console.log(floatView); // [6.64421383e-316]

可以使用 .slice(...) 方法直接或通过 TypedArray 视图复制 ArrayBuffers。

var byteView2 = byteView.slice();
var floatView2 = new Float64Array(byteView2.buffer);
byteView2[6] = 0xFF;
console.log(floatView);  // [6.64421383e-316]
console.log(floatView2); // [7.06327456e-304]