JavaScript Typisierte Array Referenzhandbuch

JavaScript 类型化数组

在 Javascript 中,类型化数组是二进制数据的类似数组的缓冲区。

不存在名为 TypedArray 的 JavaScript 属性或对象,但属性和方法可以与类型化数组对象一起使用:

实例

const myArr = new Int8Array(10);

亲自试一试

类型化数组的对象

对象 数据类型 范围
Int8Array 有符号整数(字节) -128/127
Uint8Array 无符号整数(八位字节) 0/255
Uint8ClampedArray 无符号整数(八位字节) 0/255
Int16Array 短整数 -32768/32767
Uint16Array 无符号短整数 0/65535
Int32Array 有符号长整数 -231/231-1
Uint32Array 无符号长整数 0/232
Float32Array 浮点 - 7 位有效数字 1.2x10-38/3.4x1038
Float64Array 双精度浮点 - 16 位有效数字 5.0x10-324/1.8x10308
BigInt64Array 有符号大整数 -263/263-1
BigUint64Array Unsignierte Großintegrale 0/264

Erklärung

Typisierte Arrays sind keine Arrays.

Die Methode isArray() auf typisierten Arrays gibt false zurück.

Typisierte Arrays unterstützen viele Array-Methoden nicht (wie push und pop).

Typisierte Arrays sind objekteähnliche Arrays, die zur Speicherung von binären Daten im Speicher verwendet werden.

Methoden und Eigenschaften von Typed Array

Methode / Eigenschaft Beschreibung
BYTES_PER_ELEMENT Berechnet das Attribut, das die Anzahl der Bytes angibt, die für ein Element benötigt werden.
fill() Füllt alle Elemente mit einem Wert.
find() Gibt das erste erfüllende Element zurück.
name Gibt den Namen des typisierten Arrays zurück.
of() Erstellen Sie ein typisiertes Array aus einem Array.
some() Gibt true zurück, wenn ein Element die Bedingung erfüllt.

Uint8Array im Vergleich zu Uint8ClampedArray

Der Unterschied zwischen Uint8Array und Uint8ClampedArray liegt in der Art der Werteanlage.

Wenn ein Element in einem Uint8ClampedArray auf einen Wert außerhalb des Bereichs 0-255 gesetzt wird, wird es standardmäßig auf 0 oder 255 gesetzt.

Typisierte Arrays nehmen nur die ersten 8 Bits des Wertes

Vorteile der typisierten Arrays

Typisierte Arrays bieten eine Methode zur Verarbeitung von binären Daten, die so effektiv ist wie ein Array in C.

Typisierte Arrays sind ursprüngliches Speicher, daher kann JavaScript sie direkt an jede Funktion übergeben, ohne die Daten in eine andere Darstellung zu konvertieren.

Typisierte Arrays sind viel schneller als reguläre Arrays und werden verwendet, um Daten an Funktionen zu übergeben, die ursprüngliche binäre Daten verwenden können (Computerspiele, WebGL, Canvas, Datei-API, Medien-API).

Browser-API unterstützt typisierte Arrays

Fetch-API-Instanz

fetch(url)
.then(request => request.arrayBuffer())
.then(arrayBuffer =>...);

Canvas-Instanz

const canvas = document.getElementById('my_canvas');
const context = canvas.getContext('2d');
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
const uint8ClampedArray = imageData.data;

Browser-Unterstützung

typedArray Es handelt sich um ECMAScript6 (ES6)-Funktionen

Alle modernen Browser unterstützen ES6 (JavaScript 2015)

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Ja Ja Ja Ja Ja

Internet Explorer 11 (und frühere Versionen) unterstützt dies nicht typedArray.