DataView
Try it
Die DataView
Ansicht unterstützt eine Low-Level Schnittstelle für das Lesen und Schreiben von mehrere Zahlentypen in einem ArrayBuffer
. Diese Ansicht ist unabhängig von den Plattform Byte-Reihenfolgen.
Syntax
new DataView(buffer [, byteOffset [, byteLength]])
Parameter
buffer
- Ein existierender
ArrayBuffer
oderSharedArrayBuffer
Experimental , welche als Speicher für das neueDataView
Objekt dient. byteOffset
Optional- Das Offset in Bytes, welches auf das erste Byte in dem spezifizierten Buffer für die neue Ansicht referenziert. Wenn dieser Parameter nicht angegeben ist, wird das erste Byte des Buffers als Startpunkt benutzt.
byteLength
Optional- Die Anzahl der Elemente in dem Byte Array. Wenn es nicht angegeben wird, wird die Länge des Buffers benutzt.
Rückgabewert
Ein neues DataView
Objekt welches den spezifizierten Datenpuffer (Buffer) repräsentiert.
Exceptions
RangeError
- Wird erzeugt, wenn
byteOffset
oderbyteLength
Größe als der Puffer (Buffers) sind
Beschreibung
Byte-Reihenfolge
Zahlenformate mit mehreren Bytes werden im Speicher verschieden dargestellt, je nachdem welche Maschinenarchitektur genutzt wird (siehe Endianness (en-US) für weitere Erklärungen). DataView bietet explizit die Kontrolle über den Zugriff auf die Zahlen unabhängig von der Plattformarchitektur-Byte-Reihenfolge.
var littleEndian = (function() {
var buffer = new ArrayBuffer(2);
new DataView(buffer).setInt16(0, 256, true /* littleEndian */);
// Int16Array benutzt die Plattform Byte-Reihenfolge.
return new Int16Array(buffer)[0] === 256;
})();
console.log(littleEndian); // true oder false
Eigenschaften
Alle DataView
Instanzen erben von DataView.prototype
(en-US) und erlauben das Hinzufügen von Eigenschaften zu allen DataView Objekten
{{page('de/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Eigenschaften')}}
Methoden
{{page('de/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Methoden')}}
Beispiele
var buffer = new ArrayBuffer(16);
var dv = new DataView(buffer, 0);
dv.setInt16(1, 42);
dv.getInt16(1); //42
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
Typed Array Specification | Veraltet | Abgelöst von ECMAScript 6 |
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'DataView' in dieser Spezifikation. |
Standard | Initiale Definition in einem ECMA Standard |
ECMAScript (ECMA-262) Die Definition von 'DataView' in dieser Spezifikation. |
Lebender Standard |
Browserkompatibilität
BCD tables only load in the browser
Bemerkungen zur Kompatibilität
Mit dem Start von Firefox 40 wird der new
Operator benötigt um eine DataView
zu erstellen. Der Aufruf von DataView()
als Funktion ohne new
erzeugt jetzt einen TypeError
.
var dv = DataView(buffer, 0);
// TypeError: Das Aufrufen des DataView-Konstruktors ohne new ist verboten
var dv = new DataView(buffer, 0);
Siehe auch
- jDataView: JavaScript-Bibliothek welche Polyfills und Erweiterungen für die
DataView
API in allen Browdern und Node.js zur verfügung stellt. ArrayBuffer
SharedArrayBuffer