DataView
Baseline
Weitgehend verfügbar
*
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Die DataView-Ansicht bietet eine Low-Level-Schnittstelle zum Lesen und Schreiben verschiedener Zahlentypen in einem binären ArrayBuffer, ohne dass Sie die Byte-Reihenfolge der Plattform berücksichtigen müssen.
Beschreibung
>Byte-Reihenfolge
Mehrbyte-Zahlenformate werden je nach Rechnerarchitektur unterschiedlich im Speicher dargestellt – eine Erklärung finden Sie unter Byte-Reihenfolge. Die Zugriffsmethoden von DataView ermöglichen eine ausdrückliche Kontrolle darüber, wie auf Daten zugegriffen wird, unabhängig von der Byte-Reihenfolge des ausführenden Computers. Beispielsweise verwendet der Speicher von WebAssembly immer Little-Endian. Daher sollten Sie zum Lesen und Schreiben von Mehrbyte-Werten DataView statt typisierter Arrays verwenden. Ein Beispiel finden Sie unter WebAssembly.Memory.
const littleEndian = (() => {
const buffer = new ArrayBuffer(2);
new DataView(buffer).setInt16(0, 256, true /* littleEndian */);
// Int16Array uses the platform's endianness.
return new Int16Array(buffer)[0] === 256;
})();
console.log(littleEndian); // true or false
Hinweis:
DataView verwendet beim Lesen und Schreiben standardmäßig Big-Endian, die meisten Plattformen verwenden jedoch Little-Endian.
Konstruktor
DataView()-
Erstellt ein neues
DataView-Objekt.
Instanzeigenschaften
Diese Eigenschaften sind auf DataView.prototype definiert und werden von allen DataView-Instanzen gemeinsam genutzt.
DataView.prototype.buffer-
Gibt den
ArrayBufferzurück, auf denDataViewverweist. DataView.prototype.byteLength-
Gibt die Länge von
DataViewin Bytes zurück. DataView.prototype.byteOffset-
Gibt den Offset von
DataViewgegenüber dem Anfang seinesArrayBufferin Bytes zurück. DataView.prototype.constructor-
Die Konstruktorfunktion, die das Instanzobjekt erstellt hat. Für
DataView-Instanzen ist der Anfangswert derDataView-Konstruktor. DataView.prototype[Symbol.toStringTag]-
Der Anfangswert der Eigenschaft
[Symbol.toStringTag]ist die Zeichenfolge"DataView". Diese Eigenschaft wird inObject.prototype.toString()verwendet.
Instanzmethoden
DataView.prototype.getBigInt64()-
Liest 8 Bytes ab dem angegebenen Byte-Offset dieses
DataViewund interpretiert sie als vorzeichenbehaftete 64-Bit-Ganzzahl. DataView.prototype.getBigUint64()-
Liest 8 Bytes ab dem angegebenen Byte-Offset dieses
DataViewund interpretiert sie als vorzeichenlose 64-Bit-Ganzzahl. DataView.prototype.getFloat16()-
Liest 2 Bytes ab dem angegebenen Byte-Offset dieses
DataViewund interpretiert sie als 16-Bit-Gleitkommazahl. DataView.prototype.getFloat32()-
Liest 4 Bytes ab dem angegebenen Byte-Offset dieses
DataViewund interpretiert sie als 32-Bit-Gleitkommazahl. DataView.prototype.getFloat64()-
Liest 8 Bytes ab dem angegebenen Byte-Offset dieses
DataViewund interpretiert sie als 64-Bit-Gleitkommazahl. DataView.prototype.getInt16()-
Liest 2 Bytes ab dem angegebenen Byte-Offset dieses
DataViewund interpretiert sie als vorzeichenbehaftete 16-Bit-Ganzzahl. DataView.prototype.getInt32()-
Liest 4 Bytes ab dem angegebenen Byte-Offset dieses
DataViewund interpretiert sie als vorzeichenbehaftete 32-Bit-Ganzzahl. DataView.prototype.getInt8()-
Liest 1 Byte am angegebenen Byte-Offset dieses
DataViewund interpretiert es als vorzeichenbehaftete 8-Bit-Ganzzahl. DataView.prototype.getUint16()-
Liest 2 Bytes ab dem angegebenen Byte-Offset dieses
DataViewund interpretiert sie als vorzeichenlose 16-Bit-Ganzzahl. DataView.prototype.getUint32()-
Liest 4 Bytes ab dem angegebenen Byte-Offset dieses
DataViewund interpretiert sie als vorzeichenlose 32-Bit-Ganzzahl. DataView.prototype.getUint8()-
Liest 1 Byte am angegebenen Byte-Offset dieses
DataViewund interpretiert es als vorzeichenlose 8-Bit-Ganzzahl. DataView.prototype.setBigInt64()-
Nimmt einen BigInt-Wert entgegen und speichert ihn als vorzeichenbehaftete 64-Bit-Ganzzahl in den 8 Bytes ab dem angegebenen Byte-Offset dieses
DataView. DataView.prototype.setBigUint64()-
Nimmt einen BigInt-Wert entgegen und speichert ihn als vorzeichenlose 64-Bit-Ganzzahl in den 8 Bytes ab dem angegebenen Byte-Offset dieses
DataView. DataView.prototype.setFloat16()-
Nimmt eine Zahl entgegen und speichert sie als 16-Bit-Gleitkommazahl in den 2 Bytes ab dem angegebenen Byte-Offset dieses
DataView. DataView.prototype.setFloat32()-
Nimmt eine Zahl entgegen und speichert sie als 32-Bit-Gleitkommazahl in den 4 Bytes ab dem angegebenen Byte-Offset dieses
DataView. DataView.prototype.setFloat64()-
Nimmt eine Zahl entgegen und speichert sie als 64-Bit-Gleitkommazahl in den 8 Bytes ab dem angegebenen Byte-Offset dieses
DataView. DataView.prototype.setInt16()-
Nimmt eine Zahl entgegen und speichert sie als vorzeichenbehaftete 16-Bit-Ganzzahl in den 2 Bytes am angegebenen Byte-Offset dieses
DataView. DataView.prototype.setInt32()-
Nimmt eine Zahl entgegen und speichert sie als vorzeichenbehaftete 32-Bit-Ganzzahl in den 4 Bytes am angegebenen Byte-Offset dieses
DataView. DataView.prototype.setInt8()-
Nimmt eine Zahl entgegen und speichert sie als vorzeichenbehaftete 8-Bit-Ganzzahl im Byte am angegebenen Byte-Offset dieses
DataView. DataView.prototype.setUint16()-
Nimmt eine Zahl entgegen und speichert sie als vorzeichenlose 16-Bit-Ganzzahl in den 2 Bytes am angegebenen Byte-Offset dieses
DataView. DataView.prototype.setUint32()-
Nimmt eine Zahl entgegen und speichert sie als vorzeichenlose 32-Bit-Ganzzahl in den 4 Bytes am angegebenen Byte-Offset dieses
DataView. DataView.prototype.setUint8()-
Nimmt eine Zahl entgegen und speichert sie als vorzeichenlose 8-Bit-Ganzzahl im Byte am angegebenen Byte-Offset dieses
DataView.
Beispiele
>DataView verwenden
const buffer = new ArrayBuffer(16);
const view = new DataView(buffer, 0);
view.setInt16(1, 42);
view.getInt16(1); // 42
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-dataview-objects> |