Baseline Widely available *
Das ArrayBuffer
-Objekt wird verwendet, um einen generischen rohen Binärdatenpuffer darzustellen.
Es ist ein Byte-Array, das in anderen Programmiersprachen oft als "Byte Array" bezeichnet wird. Sie können den Inhalt eines ArrayBuffer
nicht direkt manipulieren; stattdessen erstellen Sie eines der typisierten Array-Objekte oder ein DataView
-Objekt, das den Puffer in einem bestimmten Format darstellt und verwenden dieses, um den Inhalt des Puffers zu lesen und zu schreiben.
Der ArrayBuffer()
-Konstruktor erstellt einen neuen ArrayBuffer
mit der angegebenen Länge in Bytes. Sie können auch einen Array-Puffer aus vorhandenen Daten erhalten, beispielsweise aus einem Base64-String oder aus einer lokalen Datei.
ArrayBuffer
ist ein übertragbares Objekt.
ArrayBuffer
-Objekte können durch Einbeziehen der maxByteLength
-Option beim Aufruf des ArrayBuffer()
-Konstruktors gröÃenänderbar gemacht werden. Sie können abfragen, ob ein ArrayBuffer
gröÃenänderbar ist und welche maximale GröÃe es hat, indem Sie auf seine resizable
- und maxByteLength
-Eigenschaften zugreifen. Sie können einem gröÃenänderbaren ArrayBuffer
eine neue GröÃe zuweisen, indem Sie einen resize()
-Aufruf durchführen. Neue Bytes werden auf 0 initialisiert.
Diese Funktionen machen das Ãndern der GröÃe von ArrayBuffer
s effizienter â andernfalls müssen Sie eine Kopie des Puffers mit neuer GröÃe erstellen. Es gibt JavaScript auch Gleichwertigkeit mit WebAssembly in dieser Hinsicht (Wasm lineares Gedächtnis kann mit WebAssembly.Memory.prototype.grow()
erweitert werden).
ArrayBuffer
-Objekte können zwischen verschiedenen Ausführungskontexten, wie Web Workers oder Service Workers, unter Verwendung des Structured-Clone-Algorithmus übertragen werden. Dies geschieht, indem der ArrayBuffer
als übertragbares Objekt in einem Aufruf von Worker.postMessage()
oder ServiceWorker.postMessage()
übergeben wird. In reinem JavaScript können Sie auch die Besitzrechte des Speichers von einem ArrayBuffer
zu einem anderen unter Verwendung seiner transfer()
- oder transferToFixedLength()
-Methode übertragen.
Wenn ein ArrayBuffer
übertragen wird, wird seine ursprüngliche Kopie abgetrennt â das bedeutet, sie ist nicht mehr verwendbar. Zu jedem Zeitpunkt wird es nur eine Kopie des ArrayBuffer
geben, die tatsächlich Zugriff auf den zugrunde liegenden Speicher hat. Abgetrennte Puffer haben folgende Verhalten:
byteLength
wird 0 (sowohl im Puffer als auch in den zugehörigen typisierten Array-Ansichten).resize()
und slice()
werfen einen TypeError
, wenn sie aufgerufen werden. Die zugehörigen Methoden der typisierten Array-Ansichten werfen ebenfalls einen TypeError
.Sie können überprüfen, ob ein ArrayBuffer
abgetrennt ist, indem Sie seine detached
-Eigenschaft abfragen.
ArrayBuffer()
Erstellt ein neues ArrayBuffer
-Objekt.
ArrayBuffer[Symbol.species]
Die Konstruktionsfunktion, die zum Erstellen von abgeleiteten Objekten verwendet wird.
ArrayBuffer.isView()
Gibt true
zurück, wenn arg
eine der ArrayBuffer-Ansichten ist, wie beispielsweise typisierte Array-Objekte oder ein DataView
. Gibt andernfalls false
zurück.
Diese Eigenschaften sind auf ArrayBuffer.prototype
definiert und werden von allen ArrayBuffer
-Instanzen geteilt.
ArrayBuffer.prototype.byteLength
Die GröÃe, in Bytes, des ArrayBuffer
. Diese wird bei der Konstruktion des Arrays festgelegt und kann nur mithilfe der ArrayBuffer.prototype.resize()
-Methode geändert werden, wenn der ArrayBuffer
gröÃenänderbar ist.
ArrayBuffer.prototype.constructor
Die Konstruktionsfunktion, die das Instanzobjekt erstellt hat. Für ArrayBuffer
-Instanzen ist der anfängliche Wert der ArrayBuffer
-Konstruktor.
ArrayBuffer.prototype.detached
Nur lesbar. Gibt true
zurück, wenn der ArrayBuffer
abgetrennt (übertragen) wurde, oder false
, wenn nicht.
ArrayBuffer.prototype.maxByteLength
Die nur-lesbare maximale Länge, in Bytes, auf die der ArrayBuffer
geändert werden kann. Diese wird bei der Konstruktion des Arrays festgelegt und kann nicht geändert werden.
ArrayBuffer.prototype.resizable
Nur lesbar. Gibt true
zurück, wenn der ArrayBuffer
gröÃenänderbar ist, oder false
, wenn nicht.
ArrayBuffer.prototype[Symbol.toStringTag]
Der anfängliche Wert der [Symbol.toStringTag]
-Eigenschaft ist der String "ArrayBuffer"
. Diese Eigenschaft wird in Object.prototype.toString()
verwendet.
ArrayBuffer.prototype.resize()
Ãndert die GröÃe des ArrayBuffer
auf die angegebene GröÃe, in Bytes.
ArrayBuffer.prototype.slice()
Gibt einen neuen ArrayBuffer
zurück, dessen Inhalt eine Kopie der Bytes dieses ArrayBuffer
von begin
(einschlieÃlich) bis end
(ausschlieÃlich) ist. Wenn begin
oder end
negativ ist, bezieht es sich auf einen Index vom Ende des Arrays, anstatt vom Anfang.
ArrayBuffer.prototype.transfer()
Erstellt einen neuen ArrayBuffer
mit demselben Byteinhalt wie dieser Puffer, trennt dann diesen Puffer ab.
ArrayBuffer.prototype.transferToFixedLength()
Erstellt einen neuen nicht gröÃenänderbaren ArrayBuffer
mit demselben Byteinhalt wie dieser Puffer, trennt dann diesen Puffer ab.
In diesem Beispiel erstellen wir einen 8-Byte-Puffer mit einer Int32Array
-Ansicht, die auf diesen Puffer verweist:
const buffer = new ArrayBuffer(8);
const view = new Int32Array(buffer);
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4