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

View in English Always switch to English

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.

js
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 ArrayBuffer zurück, auf den DataView verweist.

DataView.prototype.byteLength

Gibt die Länge von DataView in Bytes zurück.

DataView.prototype.byteOffset

Gibt den Offset von DataView gegenüber dem Anfang seines ArrayBuffer in Bytes zurück.

DataView.prototype.constructor

Die Konstruktorfunktion, die das Instanzobjekt erstellt hat. Für DataView-Instanzen ist der Anfangswert der DataView-Konstruktor.

DataView.prototype[Symbol.toStringTag]

Der Anfangswert der Eigenschaft [Symbol.toStringTag] ist die Zeichenfolge "DataView". Diese Eigenschaft wird in Object.prototype.toString() verwendet.

Instanzmethoden

DataView.prototype.getBigInt64()

Liest 8 Bytes ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als vorzeichenbehaftete 64-Bit-Ganzzahl.

DataView.prototype.getBigUint64()

Liest 8 Bytes ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als vorzeichenlose 64-Bit-Ganzzahl.

DataView.prototype.getFloat16()

Liest 2 Bytes ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als 16-Bit-Gleitkommazahl.

DataView.prototype.getFloat32()

Liest 4 Bytes ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als 32-Bit-Gleitkommazahl.

DataView.prototype.getFloat64()

Liest 8 Bytes ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als 64-Bit-Gleitkommazahl.

DataView.prototype.getInt16()

Liest 2 Bytes ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als vorzeichenbehaftete 16-Bit-Ganzzahl.

DataView.prototype.getInt32()

Liest 4 Bytes ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als vorzeichenbehaftete 32-Bit-Ganzzahl.

DataView.prototype.getInt8()

Liest 1 Byte am angegebenen Byte-Offset dieses DataView und interpretiert es als vorzeichenbehaftete 8-Bit-Ganzzahl.

DataView.prototype.getUint16()

Liest 2 Bytes ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als vorzeichenlose 16-Bit-Ganzzahl.

DataView.prototype.getUint32()

Liest 4 Bytes ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als vorzeichenlose 32-Bit-Ganzzahl.

DataView.prototype.getUint8()

Liest 1 Byte am angegebenen Byte-Offset dieses DataView und 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

js
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

Browser-Kompatibilität

Siehe auch