類型化數組

了解什麼是類型化數組以及如何使用它們 JavaScript提供了8種類型化數組類型: Int8Array:8位有符號整數數組 Int16Array:16位有符號整數數組 Int32Array:32位有符號整數數組 Uint8Array:8位無符號整數數組 Uint16Array:16位無符號整數數組 Uint32Array:32位無符號整數數組 Float32Array:32位浮點數數組 Float64Array:64位浮點數數組 它們都是ArrayBufferView實例。 類型化數組本質上是對ArrayBuffer的一個視圖,其中每個項目的大小和類型相同。 DataView是對ArrayBuffer的另一種視圖,但在這種情況下,數組中的項目可以具有不同的大小和類型。 以下是創建一個8位有符號整數數組的示例: const a = new Int8Array() 您可以預先分配n個字節: const bytes = 1024 const a = new Int8Array(bytes) 主要用途是允許查看ArrayBuffer的內容,因為ArrayBuffer本身是不透明的(我們無法查看其內容)。 下面是如何進行查看: //我們有這個`buffer` ArrayBuffer const a = new Int8Array(buffer) 這些類型化數組類似於數組,因此現在我們可以通過常用的數組訪問技術來查看緩衝區的內容,並且我們可以訪問許多方法和屬性,包括map()、reduce()等。 類型化數組的主要用例是與WebGL、Web Audio或Canvas API一起使用。一些WebGL函數期望使用類型化數組,因為它們比常規JavaScript數組更高效。 需要記住的一點是,類型化數組無法控制字節順序:它使用平台的字節順序。一般來說,這樣做是沒問題的,因為正如我們所說,主要用例是在本地使用數組,使用多媒體API之一。另外,大多數消費型計算機使用小端序(Intel使用該約定)。但是,如果您將類型化數組的數據轉移到使用大端序的系統上,則數據可能編碼錯誤,因此無效。 如果需要對字節順序進行這種控制,請改用DataView。