[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer [Back]  [Original]

ArrayBuffer - JavaScript | MDN

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

View in English Always switch to English

ArrayBuffer

Baseline
Weitgehend verfgbar
*

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.

* Einige Teile dieser Funktion werden mglicherweise unterschiedlich gut untersttzt.

Das ArrayBuffer-Objekt wird verwendet, um einen generischen Puffer fr rohe binre Daten darzustellen.

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

Der ArrayBuffer()-Konstruktor erstellt ein neues ArrayBuffer mit der angegebenen Lnge in Bytes. Sie knnen auch einen Array-Puffer aus bestehenden Daten erhalten, zum Beispiel aus einem Base64-String oder aus einer lokalen Datei.

ArrayBuffer ist ein bertragbares Objekt.

In diesem Artikel

Beschreibung

ndern der Gre von ArrayBuffers

ArrayBuffer-Objekte knnen durch die Angabe der Option maxByteLength beim Aufrufen des ArrayBuffer() Konstruktors vergrerbar gemacht werden. Sie knnen abfragen, ob ein ArrayBuffer vergrerbar ist und welche maximale Gre es hat, indem Sie auf seine resizable und maxByteLength Eigenschaften zugreifen. Sie knnen einem vergrerbaren ArrayBuffer mit einem resize() Aufruf eine neue Gre zuweisen. Neue Bytes werden auf 0 initialisiert.

Diese Funktionen machen das ndern der Gre von ArrayBuffers effizienter andernfalls mssen Sie eine Kopie des Puffers mit neuer Gre erstellen. Dies gibt JavaScript in dieser Hinsicht Paritt mit WebAssembly (Wasm lineare Speicher knnen mit WebAssembly.Memory.prototype.grow() vergrert werden).

bertragen von ArrayBuffers

ArrayBuffer-Objekte knnen zwischen verschiedenen Ausfhrungskontexten, wie Web Workers oder Service Workers, unter Verwendung des strukturierten Klonalalgorithmus bertragen werden. Dies geschieht, indem das ArrayBuffer als bertragbares Objekt in einem Aufruf von Worker.postMessage() oder ServiceWorker.postMessage() bergeben wird. In reinem JavaScript knnen Sie auch die Speicherbertragung von einem ArrayBuffer zu einem anderen mit seinen transfer() oder transferToFixedLength() Methoden durchfhren.

Wenn ein ArrayBuffer bertragen wird, wird seine ursprngliche Kopie getrennt das bedeutet, es ist nicht mehr verwendbar. Zu jedem Zeitpunkt gibt es nur eine Kopie des ArrayBuffer, die tatschlich Zugriff auf den zugrunde liegenden Speicher hat. Getrennte Puffer haben die folgenden Verhaltensweisen:

  • byteLength wird 0 (sowohl im Puffer als auch in den zugehrigen typisierten Array-Ansichten).
  • Methoden, wie resize() und slice(), werfen einen TypeError, wenn sie aufgerufen werden. Die Methoden der zugehrigen typisierten Array-Ansichten werfen ebenfalls einen TypeError.

Sie knnen berprfen, ob ein ArrayBuffer getrennt ist, indem Sie seine detached Eigenschaft prfen.

Konstruktor

ArrayBuffer()

Erstellt ein neues ArrayBuffer-Objekt.

Statische Eigenschaften

ArrayBuffer[Symbol.species]

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

Statische Methoden

ArrayBuffer.isView()

Gibt true zurck, wenn arg eine der ArrayBuffer-Ansichten ist, wie typisierte Array-Objekte oder ein DataView. Gibt andernfalls false zurck.

Instanz-Eigenschaften

Diese Eigenschaften sind auf ArrayBuffer.prototype definiert und werden von allen ArrayBuffer-Instanzen geteilt.

ArrayBuffer.prototype.byteLength

Die Gre des ArrayBuffer in Bytes. Dies wird beim Erstellen des Arrays festgelegt und kann nur gendert werden, wenn der ArrayBuffer vergrerbar ist, durch die Verwendung der ArrayBuffer.prototype.resize() Methode.

ArrayBuffer.prototype.constructor

Die Konstruktionsfunktion, die das Instanzobjekt erstellt hat. Fr ArrayBuffer-Instanzen ist der Initialwert der ArrayBuffer Konstruktor.

ArrayBuffer.prototype.detached

Schreibgeschtzt. Gibt true zurck, wenn das ArrayBuffer getrennt (bertragen) wurde, oder false, wenn nicht.

ArrayBuffer.prototype.maxByteLength

Die schreibgeschtzte maximale Lnge, in Bytes, in die das ArrayBuffer vergrert werden kann. Dies wird beim Erstellen des Arrays festgelegt und kann nicht gendert werden.

ArrayBuffer.prototype.resizable

Schreibgeschtzt. Gibt true zurck, wenn das ArrayBuffer vergrerbar ist, oder false, wenn nicht.

ArrayBuffer.prototype[Symbol.toStringTag]

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

Instanz-Methoden

ArrayBuffer.prototype.resize()

ndert die Gre des ArrayBuffer auf die angegebene Gre in Bytes.

ArrayBuffer.prototype.slice()

Gibt ein neues ArrayBuffer zurck, dessen Inhalt eine Kopie der Bytes dieses ArrayBuffer von begin (einschlielich) bis end (ausschlielich) ist. Wenn entweder begin oder end negativ ist, bezieht es sich auf einen Index vom Ende des Arrays, im Gegensatz zu vom Anfang.

ArrayBuffer.prototype.transfer()

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

ArrayBuffer.prototype.transferToFixedLength()

Erstellt ein neues nicht-vergrerbares ArrayBuffer 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 einer Int32Array-Ansicht, die auf den Puffer verweist:

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

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# sec-arraybuffer-objects

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page