DataView

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

* Some parts of this feature may have varying levels of support.

Die DataView-Sicht bietet eine Low-Level-Schnittstelle zum Lesen und Schreiben mehrerer Zahlentypen in einem binären ArrayBuffer, ohne sich um die Endianness der Plattform kümmern zu müssen.

Beschreibung

Endianness

Mehrbyte-Zahlenformate werden im Speicher je nach Maschinenarchitektur unterschiedlich dargestellt – siehe Endianness für eine Erklärung. DataView-Zugriffe bieten explizite Kontrolle darüber, wie auf Daten zugegriffen wird, unabhängig von der Endianness des ausführenden Computers. Zum Beispiel ist WebAssembly-Speicher immer klein-endian, daher sollten Sie DataView anstelle von typisierten Arrays verwenden, um Mehrbyte-Werte zu lesen und schreiben. Siehe WebAssembly.Memory für ein Beispiel.

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 liest und schreibt standardmäßig im Big-Endian-Format, aber die meisten Plattformen verwenden Little-Endian.

Konstruktor

DataView()

Erstellt ein neues DataView-Objekt.

Instanz-Eigenschaften

Diese Eigenschaften sind auf DataView.prototype definiert und werden von allen DataView-Instanzen geteilt.

DataView.prototype.buffer

Das vom dieser Sicht referenzierte ArrayBuffer. Wird zur Konstruktion festgelegt und ist daher nur lesbar.

DataView.prototype.byteLength

Die Länge (in Bytes) dieser Sicht. Wird zur Konstruktion festgelegt und ist daher nur lesbar.

DataView.prototype.byteOffset

Der Versatz (in Bytes) dieser Sicht vom Beginn ihres ArrayBuffer. Wird zur Konstruktion festgelegt und ist daher nur lesbar.

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 [Symbol.toStringTag]-Eigenschaft ist der String "DataView". Diese Eigenschaft wird in Object.prototype.toString() verwendet.

Instanz-Methoden

DataView.prototype.getBigInt64()

Liest 8 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView und interpretiert sie als 64-Bit-Ganzzahl mit Vorzeichen.

DataView.prototype.getBigUint64()

Liest 8 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView und interpretiert sie als 64-Bit-Ganzzahl ohne Vorzeichen.

DataView.prototype.getFloat16()

Liest 2 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView und interpretiert sie als 16-Bit-Gleitkommazahl.

DataView.prototype.getFloat32()

Liest 4 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView und interpretiert sie als 32-Bit-Gleitkommazahl.

DataView.prototype.getFloat64()

Liest 8 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView und interpretiert sie als 64-Bit-Gleitkommazahl.

DataView.prototype.getInt16()

Liest 2 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView und interpretiert sie als 16-Bit-Ganzzahl mit Vorzeichen.

DataView.prototype.getInt32()

Liest 4 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView und interpretiert sie als 32-Bit-Ganzzahl mit Vorzeichen.

DataView.prototype.getInt8()

Liest 1 Byte an der angegebenen Byteversatz dieser DataView und interpretiert es als 8-Bit-Ganzzahl mit Vorzeichen.

DataView.prototype.getUint16()

Liest 2 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView und interpretiert sie als 16-Bit-Ganzzahl ohne Vorzeichen.

DataView.prototype.getUint32()

Liest 4 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView und interpretiert sie als 32-Bit-Ganzzahl ohne Vorzeichen.

DataView.prototype.getUint8()

Liest 1 Byte an der angegebenen Byteversatz dieser DataView und interpretiert es als 8-Bit-Ganzzahl ohne Vorzeichen.

DataView.prototype.setBigInt64()

Nimmt eine BigInt und speichert sie als 64-Bit-Ganzzahl mit Vorzeichen in den 8 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView.

DataView.prototype.setBigUint64()

Nimmt eine BigInt und speichert sie als 64-Bit-Ganzzahl ohne Vorzeichen in den 8 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView.

DataView.prototype.setFloat16()

Nimmt eine Zahl und speichert sie als 16-Bit-Fließkommazahl in den 2 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView.

DataView.prototype.setFloat32()

Nimmt eine Zahl und speichert sie als 32-Bit-Fließkommazahl in den 4 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView.

DataView.prototype.setFloat64()

Nimmt eine Zahl und speichert sie als 64-Bit-Fließkommazahl in den 8 Bytes beginnend bei dem angegebenen Byteversatz dieser DataView.

DataView.prototype.setInt16()

Nimmt eine Zahl und speichert sie als 16-Bit-Ganzzahl mit Vorzeichen in den 2 Bytes an dem angegebenen Byteversatz dieser DataView.

DataView.prototype.setInt32()

Nimmt eine Zahl und speichert sie als 32-Bit-Ganzzahl mit Vorzeichen in den 4 Bytes an dem angegebenen Byteversatz dieser DataView.

DataView.prototype.setInt8()

Nimmt eine Zahl und speichert sie als 8-Bit-Ganzzahl mit Vorzeichen in dem Byte an dem angegebenen Byteversatz dieser DataView.

DataView.prototype.setUint16()

Nimmt eine Zahl und speichert sie als 16-Bit-Ganzzahl ohne Vorzeichen in den 2 Bytes an dem angegebenen Byteversatz dieser DataView.

DataView.prototype.setUint32()

Nimmt eine Zahl und speichert sie als 32-Bit-Ganzzahl ohne Vorzeichen in den 4 Bytes an dem angegebenen Byteversatz dieser DataView.

DataView.prototype.setUint8()

Nimmt eine Zahl und speichert sie als 8-Bit-Ganzzahl ohne Vorzeichen in dem Byte an dem angegebenen Byteversatz dieser DataView.

Beispiele

Verwendung von DataView

js
const buffer = new ArrayBuffer(16);
const view = new DataView(buffer, 0);

view.setInt16(1, 42);
view.getInt16(1); // 42

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-dataview-objects

Browser-Kompatibilität

Siehe auch