Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. ArrayBuffer

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

ArrayBuffer

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

* Some parts of this feature may have varying levels of support.

DasArrayBuffer-Objekt wird verwendet, um einen generischen Puffer für rohe binäre Daten darzustellen.

Es handelt sich um ein Byte-Array, das in anderen Sprachen oft als "Byte Array" bezeichnet wird. Sie können den Inhalt einesArrayBuffer nicht direkt manipulieren; stattdessen erstellen Sie eines dertypisierten Array-Objekte oder einDataView Objekt, das den Puffer in einem spezifischen Format darstellt und verwenden dies, um den Inhalt des Puffers zu lesen und zu schreiben.

DerArrayBuffer()-Konstruktor erstellt ein neuesArrayBuffer mit der angegebenen Länge in Bytes. Sie können auch einen Array-Puffer aus bestehenden Daten erhalten, zum Beispiel aus einemBase64-String oderaus einer lokalen Datei.

ArrayBuffer ist einübertragbares Objekt.

Beschreibung

Ändern der Größe von ArrayBuffers

ArrayBuffer-Objekte können durch die Angabe der OptionmaxByteLength beim Aufrufen desArrayBuffer() Konstruktors vergrößerbar gemacht werden. Sie können abfragen, ob einArrayBuffer vergrößerbar ist und welche maximale Größe es hat, indem Sie auf seineresizable undmaxByteLength Eigenschaften zugreifen. Sie können einem vergrößerbarenArrayBuffer mit einemresize() Aufruf eine neue Größe zuweisen. Neue Bytes werden auf 0 initialisiert.

Diese Funktionen machen das Ändern der Größe vonArrayBuffers effizienter — andernfalls müssen Sie eine Kopie des Puffers mit neuer Größe erstellen. Dies gibt JavaScript in dieser Hinsicht Parität mit WebAssembly (Wasm lineare Speicher können mitWebAssembly.Memory.prototype.grow() vergrößert werden).

Übertragen von ArrayBuffers

ArrayBuffer-Objekte können zwischen verschiedenen Ausführungskontexten, wieWeb Workers oderService Workers, unter Verwendung desstrukturierten Klonalalgorithmus übertragen werden. Dies geschieht, indem dasArrayBuffer alsübertragbares Objekt in einem Aufruf vonWorker.postMessage() oderServiceWorker.postMessage() übergeben wird. In reinem JavaScript können Sie auch die Speicherübertragung von einemArrayBuffer zu einem anderen mit seinentransfer() odertransferToFixedLength() Methoden durchführen.

Wenn einArrayBuffer übertragen wird, wird seine ursprüngliche Kopiegetrennt — das bedeutet, es ist nicht mehr verwendbar. Zu jedem Zeitpunkt gibt es nur eine Kopie desArrayBuffer, die tatsächlich Zugriff auf den zugrunde liegenden Speicher hat. Getrennte Puffer haben die folgenden Verhaltensweisen:

  • byteLength wird 0 (sowohl im Puffer als auch in den zugehörigen typisierten Array-Ansichten).
  • Methoden, wieresize() undslice(), werfen einenTypeError, wenn sie aufgerufen werden. Die Methoden der zugehörigen typisierten Array-Ansichten werfen ebenfalls einenTypeError.

Sie können überprüfen, ob einArrayBuffer getrennt ist, indem Sie seinedetached Eigenschaft prüfen.

Konstruktor

ArrayBuffer()

Erstellt ein neuesArrayBuffer-Objekt.

Statische Eigenschaften

ArrayBuffer[Symbol.species]

Die Konstruktionsfunktion, die verwendet wird, um abgeleitete Objekte zu erstellen.

Statische Methoden

ArrayBuffer.isView()

Gibttrue zurück, wennarg eine der ArrayBuffer-Ansichten ist, wietypisierte Array-Objekte oder einDataView. Gibt andernfallsfalse zurück.

Instanz-Eigenschaften

Diese Eigenschaften sind aufArrayBuffer.prototype definiert und werden von allenArrayBuffer-Instanzen geteilt.

ArrayBuffer.prototype.byteLength

Die Größe desArrayBuffer in Bytes. Dies wird beim Erstellen des Arrays festgelegt und kann nur geändert werden, wenn derArrayBuffer vergrößerbar ist, durch die Verwendung derArrayBuffer.prototype.resize() Methode.

ArrayBuffer.prototype.constructor

Die Konstruktionsfunktion, die das Instanzobjekt erstellt hat. FürArrayBuffer-Instanzen ist der Initialwert derArrayBuffer Konstruktor.

ArrayBuffer.prototype.detached

Schreibgeschützt. Gibttrue zurück, wenn dasArrayBuffer getrennt (übertragen) wurde, oderfalse, wenn nicht.

ArrayBuffer.prototype.maxByteLength

Die schreibgeschützte maximale Länge, in Bytes, in die dasArrayBuffer vergrößert werden kann. Dies wird beim Erstellen des Arrays festgelegt und kann nicht geändert werden.

ArrayBuffer.prototype.resizable

Schreibgeschützt. Gibttrue zurück, wenn dasArrayBuffer vergrößerbar ist, oderfalse, wenn nicht.

ArrayBuffer.prototype[Symbol.toStringTag]

Der Ausgangswert der[Symbol.toStringTag] Eigenschaft ist der String"ArrayBuffer". Diese Eigenschaft wird inObject.prototype.toString() verwendet.

Instanz-Methoden

ArrayBuffer.prototype.resize()

Ändert die Größe desArrayBuffer auf die angegebene Größe in Bytes.

ArrayBuffer.prototype.slice()

Gibt ein neuesArrayBuffer zurück, dessen Inhalt eine Kopie der Bytes diesesArrayBuffer vonbegin (einschließlich) bisend (ausschließlich) ist. Wenn entwederbegin oderend negativ ist, bezieht es sich auf einen Index vom Ende des Arrays, im Gegensatz zu vom Anfang.

ArrayBuffer.prototype.transfer()

Erstellt ein neuesArrayBuffer mit demselben Byte-Inhalt wie dieser Puffer und trennt dann diesen Puffer.

ArrayBuffer.prototype.transferToFixedLength()

Erstellt ein neues nicht-vergrößerbaresArrayBuffer mit demselben Byte-Inhalt wie dieser Puffer und trennt dann diesen Puffer.

Beispiele

Erstellen eines ArrayBuffer

In diesem Beispiel erstellen wir einen 8-Byte-Puffer mit einerInt32Array-Ansicht, die auf den Puffer verweist:

js
const buffer = new ArrayBuffer(8);const view = new Int32Array(buffer);

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-arraybuffer-objects

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp