Das ArrayBuffer Objekt repräsentiert einen generischen Buffer mit fester Länge. Der Inhalt eines ArrayBuffers kann nicht direkt bearbeitet werden; stattdessen wird eines der typisierten Array-Objekte oder ein DataView Objekt verwendet, welches den Buffer in einem bestimmten Format repräsentiert und von welchem aus sein Inhalt bearbeitet werden kann.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Syntax
new ArrayBuffer(length)
Parameter
- length
- Die Größe, in Bytes, des zu erstellenden
ArrayBuffer.
Rückgabewert
Ein neues ArrayBuffer Objekt der angegebenen Länge. Der Inhalt wird auf 0 initialisiert.
Ausnahmen
Ein RangeError wird erhoben wenn die Länge größer als Number.MAX_SAFE_INTEGER (>= 2 ** 53) oder negativ ist.
Beschreibung
Der ArrayBuffer Konstruktor erstellt einen neuen ArrayBuffer der angegebenen Länge in Bytes.
Einen ArrayBuffer von existierenden Daten erstellen
Eigenschaften
ArrayBuffer.length- Der Wert des
ArrayBufferKonstruktors für die Länge. get ArrayBuffer[@@species]- Die Konstruktor-Funktion um abgeleitete Objekte zu erstellen.
ArrayBuffer.prototype- Erlaubt das Hinzufügen von Eigenschaften zu allen
ArrayBufferObjekten.
Methoden
ArrayBuffer.isView(arg)- Gibt
truezurück wennargeines der Views desArrayBuffersist, wie zum Beispiel die typisierten Array-Objekte oder einDataView. Ansonsten wirdfalsezurückgegeben. ArrayBuffer.transfer(oldBuffer [, newByteLength])-
Gibt einen neuen
ArrayBufferzurück, dessen Inhalt von den Daten desoldBuffers genommen wird und dann entweder abgeschnitten oder mit Null aufnewByteLengtherweitert wird.
Instanzen
Alle ArrayBuffer Instanzen erben von ArrayBuffer.prototype.
Eigenschaften
- ArrayBuffer.prototype.constructor
- Spezifiziert die Funktion, die das Prototypeobjekt erstellt. Der Initialwert ist der eingebaute Standard-
ArrayBuffer-Konstruktor. ArrayBuffer.prototype.byteLengthSchreibgeschützt- Die größe, in Bytes, des Arrays. Dieser wird bei der Erstellung des Arrays ermittelt und kan nicht geändert werden.
Methoden
ArrayBuffer.prototype.slice()- Gibt einen neuen
ArrayBufferzurück, welcher eine Kopie der Bytes des eigentlichenArrayBuffereinthält. Die Kopie geht vonbegin(inklusiv) bisend(exclusiv). Wenn einer der Werte negativ ist, referenziert er auf den Index vom Ende des Arrays an und nicht vom Beginn des Arrays.
ArrayBuffer.slice()- Hat die selbe Funktion wie
ArrayBuffer.prototype.slice().
Beispiel
In diesem Beispiel erstellen wir einen 8-byte Puffer mit einem Int32Array View, um auf den Puffer zu verweisen:
var buffer = new ArrayBuffer(8); var view = new Int32Array(buffer);
Spezifikationen
| Spezifikation | Status | Kommentar |
|---|---|---|
| Typed Array Specification | Veraltet | Ersetzt durch ECMAScript 6. |
| ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'ArrayBuffer' in dieser Spezifikation. |
Standard | Initiale Definition im ECMA Standard. Spezifiziert, dass new benötigt wird. |
| ECMAScript Latest Draft (ECMA-262) Die Definition von 'ArrayBuffer' in dieser Spezifikation. |
Entwurf |
Browserkompatibilität
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ArrayBuffer | Chrome Vollständige Unterstützung 7 | Edge Vollständige Unterstützung 12 | Firefox Vollständige Unterstützung 4 | IE Vollständige Unterstützung 10 | Opera Vollständige Unterstützung 11.6 | Safari Vollständige Unterstützung 5.1 | WebView Android Vollständige Unterstützung 4 | Chrome Android Vollständige Unterstützung 18 | Firefox Android Vollständige Unterstützung 4 | Opera Android Vollständige Unterstützung 12 | Safari iOS Vollständige Unterstützung 4.2 | Samsung Internet Android Vollständige Unterstützung Ja | nodejs Vollständige Unterstützung Ja |
byteLength | Chrome Vollständige Unterstützung 7 | Edge Vollständige Unterstützung 12 | Firefox Vollständige Unterstützung 4 | IE Vollständige Unterstützung 10 | Opera Vollständige Unterstützung 11.6 | Safari Vollständige Unterstützung 5.1 | WebView Android Vollständige Unterstützung 4 | Chrome Android Vollständige Unterstützung 18 | Firefox Android Vollständige Unterstützung 4 | Opera Android Vollständige Unterstützung 12 | Safari iOS Vollständige Unterstützung 4.2 | Samsung Internet Android Vollständige Unterstützung Ja | nodejs Vollständige Unterstützung Ja |
isView | Chrome Vollständige Unterstützung 32 | Edge Vollständige Unterstützung 12 | Firefox Vollständige Unterstützung 29 | IE Vollständige Unterstützung 11 | Opera Vollständige Unterstützung Ja | Safari Vollständige Unterstützung Ja | WebView Android Vollständige Unterstützung ≤37 | Chrome Android Vollständige Unterstützung 32 | Firefox Android Vollständige Unterstützung 29 | Opera Android Vollständige Unterstützung Ja | Safari iOS Vollständige Unterstützung Ja | Samsung Internet Android Vollständige Unterstützung 2.0 | nodejs Vollständige Unterstützung Ja |
ArrayBuffer() without new throws | Chrome Vollständige Unterstützung 7 | Edge Vollständige Unterstützung 14 | Firefox Vollständige Unterstützung 44 | IE Keine Unterstützung Nein | Opera Vollständige Unterstützung Ja | Safari Vollständige Unterstützung 5.1 | WebView Android Vollständige Unterstützung ≤37 | Chrome Android Vollständige Unterstützung 18 | Firefox Android Vollständige Unterstützung 44 | Opera Android Vollständige Unterstützung Ja | Safari iOS Vollständige Unterstützung 5 | Samsung Internet Android Vollständige Unterstützung 1.0 | nodejs Vollständige Unterstützung 0.12 |
prototype | Chrome Vollständige Unterstützung 7 | Edge Vollständige Unterstützung 12 | Firefox Vollständige Unterstützung 4 | IE Vollständige Unterstützung 10 | Opera Vollständige Unterstützung 11.6 | Safari Vollständige Unterstützung 5.1 | WebView Android Vollständige Unterstützung 4 | Chrome Android Vollständige Unterstützung 18 | Firefox Android Vollständige Unterstützung 4 | Opera Android Vollständige Unterstützung 12 | Safari iOS Vollständige Unterstützung 4.2 | Samsung Internet Android Vollständige Unterstützung Ja | nodejs Vollständige Unterstützung Ja |
slice | Chrome Vollständige Unterstützung 17 | Edge Vollständige Unterstützung 12 | Firefox
Vollständige Unterstützung
12
| IE Vollständige Unterstützung 11 | Opera Vollständige Unterstützung Ja | Safari Vollständige Unterstützung 6 | WebView Android Vollständige Unterstützung ≤37 | Chrome Android Vollständige Unterstützung 18 | Firefox Android
Vollständige Unterstützung
14
| Opera Android Vollständige Unterstützung Ja | Safari iOS Vollständige Unterstützung 6 | Samsung Internet Android Vollständige Unterstützung 1.0 | nodejs Vollständige Unterstützung Ja |
transfer | Chrome Keine Unterstützung Nein | Edge Keine Unterstützung Nein | Firefox Keine Unterstützung Nein | IE Keine Unterstützung Nein | Opera Keine Unterstützung Nein | Safari Keine Unterstützung Nein | WebView Android Keine Unterstützung Nein | Chrome Android Keine Unterstützung Nein | Firefox Android Keine Unterstützung Nein | Opera Android Keine Unterstützung Nein | Safari iOS Keine Unterstützung Nein | Samsung Internet Android Keine Unterstützung Nein | nodejs Keine Unterstützung Nein |
@@species | Chrome Vollständige Unterstützung 51 | Edge Vollständige Unterstützung 13 | Firefox Vollständige Unterstützung 48 | IE Keine Unterstützung Nein | Opera Vollständige Unterstützung 38 | Safari ? | WebView Android Vollständige Unterstützung 51 | Chrome Android Vollständige Unterstützung 51 | Firefox Android Vollständige Unterstützung 48 | Opera Android Vollständige Unterstützung 41 | Safari iOS ? | Samsung Internet Android Vollständige Unterstützung 5.0 | nodejs
Vollständige Unterstützung
6.5.0
|
Legende
- Vollständige Unterstützung
- Vollständige Unterstützung
- Keine Unterstützung
- Keine Unterstützung
- Kompatibilität unbekannt
- Kompatibilität unbekannt
- Experimentell. Das Verhalten kann sich zukünftig ändern.
- Experimentell. Das Verhalten kann sich zukünftig ändern.
- Nicht standardisiert. Erwarte schlechte browserübergreifende Unterstützung.
- Nicht standardisiert. Erwarte schlechte browserübergreifende Unterstützung.
- Siehe Implementierungshinweise.
- Siehe Implementierungshinweise.
- Benutzer muss dieses Feature explizit aktivieren.
- Benutzer muss dieses Feature explizit aktivieren.
Kompatibilitätshinweis
Seit ECMAScript 2015 müssen ArrayBuffer Konstruktor mit einem new Operator konstruiert werden. Einen ArrayBuffer Konstruktor als Funktion aufzurufen ohne new ab sofort einen TypeError erheben.
var dv = ArrayBuffer(10); // TypeError: Einen eingebauten ArrayBuffer-Konstruktor // ohne new aufzurufen ist nicht erlaubt.
var dv = new ArrayBuffer(10);