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.

Der DataView-View bietet eine Low-Level-Schnittstelle zum Lesen und Schreiben verschiedener Zahlentypen in einem binären ArrayBuffer, ohne sich um die Byte-Reihenfolge der Plattform kümmern zu müssen.

Beschreibung

Byte-Reihenfolge

Mehrbyte-Zahlenformate werden im Speicher je nach Maschinenarchitektur unterschiedlich dargestellt – siehe Byte-Reihenfolge für eine Erklärung. DataView-Zugriffs-Methoden bieten eine explizite Kontrolle darüber, wie Daten unabhängig von der Byte-Reihenfolge des ausführenden Computers zugegriffen werden. Beispielsweise ist der Speicher von WebAssembly immer im Little-Endian-Format, daher sollten Sie DataView anstelle von typisierten Arrays verwenden, um Mehrbyte-Werte zu lesen und zu schreiben. Sehen Sie sich WebAssembly.Memory für ein Beispiel an.

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 in Big-Endian, 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

Der durch diesen View referenzierte ArrayBuffer. Festgelegt zur Konstruktionszeit und daher nur lesbar.

DataView.prototype.byteLength

Die Länge (in Bytes) dieses Views. Festgelegt zur Konstruktionszeit und daher nur lesbar.

DataView.prototype.byteOffset

Der Offset (in Bytes) dieses Views vom Beginn seines ArrayBuffer. Festgelegt zur Konstruktionszeit und daher nur lesbar.

DataView.prototype.constructor

Die Konstruktionsfunktion, die das Instanz-Objekt erstellt hat. Für DataView-Instanzen ist der anfängliche Wert der DataView-Konstruktor.

DataView.prototype[Symbol.toStringTag]

Der anfängliche Wert 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 ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als 64-Bit-Vorzahlen.

DataView.prototype.getBigUint64()

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

DataView.prototype.getFloat16()

Liest 2 Bytes beginnend ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als 16-Bit-Floating-Point-Zahl.

DataView.prototype.getFloat32()

Liest 4 Bytes beginnend ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als 32-Bit-Floating-Point-Zahl.

DataView.prototype.getFloat64()

Liest 8 Bytes beginnend ab dem angegebenen Byte-Offset dieses DataView und interpretiert sie als 64-Bit-Floating-Point-Zahl.

DataView.prototype.getInt16()

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

DataView.prototype.getInt32()

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

DataView.prototype.getInt8()

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

DataView.prototype.getUint16()

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

DataView.prototype.getUint32()

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

DataView.prototype.getUint8()

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

DataView.prototype.setBigInt64()

Nimmt ein BigInt und speichert es als 64-Bit-Vorzeichenwert in den 8 Bytes beginnend ab dem angegebenen Byte-Offset dieses DataView.

DataView.prototype.setBigUint64()

Nimmt ein BigInt und speichert es als 64-Bit-Unsigned-Integer in den 8 Bytes beginnend ab dem angegebenen Byte-Offset dieses DataView.

DataView.prototype.setFloat16()

Nimmt eine Zahl und speichert sie als 16-Bit-Float in den 2 Bytes beginnend ab dem angegebenen Byte-Offset dieses DataView.

DataView.prototype.setFloat32()

Nimmt eine Zahl und speichert sie als 32-Bit-Float in den 4 Bytes beginnend ab dem angegebenen Byte-Offset dieses DataView.

DataView.prototype.setFloat64()

Nimmt eine Zahl und speichert sie als 64-Bit-Float in den 8 Bytes beginnend ab dem angegebenen Byte-Offset dieses DataView.

DataView.prototype.setInt16()

Nimmt eine Zahl und speichert sie als 16-Bit-Vorzahlen in den 2 Bytes am angegebenen Byte-Offset dieses DataView.

DataView.prototype.setInt32()

Nimmt eine Zahl und speichert sie als 32-Bit-Vorzahlen in den 4 Bytes am angegebenen Byte-Offset dieses DataView.

DataView.prototype.setInt8()

Nimmt eine Zahl und speichert sie als 8-Bit-Vorzahlen im Byte am angegebenen Byte-Offset dieses DataView.

DataView.prototype.setUint16()

Nimmt eine Zahl und speichert sie als 16-Bit-Unsigned-Integer in den 2 Bytes am angegebenen Byte-Offset dieses DataView.

DataView.prototype.setUint32()

Nimmt eine Zahl und speichert sie als 32-Bit-Unsigned-Integer in den 4 Bytes am angegebenen Byte-Offset dieses DataView.

DataView.prototype.setUint8()

Nimmt eine Zahl und speichert sie als 8-Bit-Unsigned-Integer im Byte am angegebenen Byte-Offset dieses 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® 2025 Language Specification
# sec-dataview-objects

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
DataView
DataView() constructor
SharedArrayBuffer accepted as buffer
buffer
byteLength
byteOffset
getBigInt64
getBigUint64
getFloat16
getFloat32
getFloat64
getInt16
getInt32
getInt8
getUint16
getUint32
getUint8
setBigInt64
setBigUint64
setFloat16
setFloat32
setFloat64
setInt16
setInt32
setInt8
setUint16
setUint32
setUint8

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Siehe auch