使用 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]