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.
TheDataView view provides a low-level interface for reading and writing multiple number types in a binaryArrayBuffer, without having to care about the platform'sendianness.
In this article
Description
>Endianness
Multi-byte number formats are represented in memory differently depending on machine architecture — seeEndianness for an explanation.DataView accessors provide explicit control of how data is accessed, regardless of the executing computer's endianness. For example,WebAssembly memory is always little-endian, so you should useDataView instead of typed arrays to read and write multi-byte values. SeeWebAssembly.Memory for an example.
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 falseNote:DataView defaults to big-endian read and write, but most platforms use little-endian.
Constructor
DataView()Creates a new
DataViewobject.
Instance properties
These properties are defined onDataView.prototype and shared by allDataView instances.
DataView.prototype.bufferReturns the
ArrayBufferreferenced by theDataView.DataView.prototype.byteLengthReturns the length (in bytes) of the
DataView.DataView.prototype.byteOffsetReturns the offset (in bytes) of the
DataViewfrom the start of itsArrayBuffer.DataView.prototype.constructorThe constructor function that created the instance object. For
DataViewinstances, the initial value is theDataViewconstructor.DataView.prototype[Symbol.toStringTag]The initial value of the
[Symbol.toStringTag]property is the string"DataView". This property is used inObject.prototype.toString().
Instance methods
DataView.prototype.getBigInt64()Reads 8 bytes starting at the specified byte offset of this
DataViewand interprets them as a 64-bit signed integer.DataView.prototype.getBigUint64()Reads 8 bytes starting at the specified byte offset of this
DataViewand interprets them as a 64-bit unsigned integer.DataView.prototype.getFloat16()Reads 2 bytes starting at the specified byte offset of this
DataViewand interprets them as a 16-bit floating point number.DataView.prototype.getFloat32()Reads 4 bytes starting at the specified byte offset of this
DataViewand interprets them as a 32-bit floating point number.DataView.prototype.getFloat64()Reads 8 bytes starting at the specified byte offset of this
DataViewand interprets them as a 64-bit floating point number.DataView.prototype.getInt16()Reads 2 bytes starting at the specified byte offset of this
DataViewand interprets them as a 16-bit signed integer.DataView.prototype.getInt32()Reads 4 bytes starting at the specified byte offset of this
DataViewand interprets them as a 32-bit signed integer.DataView.prototype.getInt8()Reads 1 byte at the specified byte offset of this
DataViewand interprets it as an 8-bit signed integer.DataView.prototype.getUint16()Reads 2 bytes starting at the specified byte offset of this
DataViewand interprets them as a 16-bit unsigned integer.DataView.prototype.getUint32()Reads 4 bytes starting at the specified byte offset of this
DataViewand interprets them as a 32-bit unsigned integer.DataView.prototype.getUint8()Reads 1 byte at the specified byte offset of this
DataViewand interprets it as an 8-bit unsigned integer.DataView.prototype.setBigInt64()Takes a BigInt and stores it as a 64-bit signed integer in the 8 bytes starting at the specified byte offset of this
DataView.DataView.prototype.setBigUint64()Takes a BigInt and stores it as a 64-bit unsigned integer in the 8 bytes starting at the specified byte offset of this
DataView.DataView.prototype.setFloat16()Takes a number and stores it as a 16-bit float in the 2 bytes starting at the specified byte offset of this
DataView.DataView.prototype.setFloat32()Takes a number and stores it as a 32-bit float in the 4 bytes starting at the specified byte offset of this
DataView.DataView.prototype.setFloat64()Takes a number and stores it as a 64-bit float in the 8 bytes starting at the specified byte offset of this
DataView.DataView.prototype.setInt16()Takes a number and stores it as a 16-bit signed integer in the 2 bytes at the specified byte offset of this
DataView.DataView.prototype.setInt32()Takes a number and stores it as a 32-bit signed integer in the 4 bytes at the specified byte offset of this
DataView.DataView.prototype.setInt8()Takes a number and stores it as an 8-bit signed integer in the byte at the specified byte offset of this
DataView.DataView.prototype.setUint16()Takes a number and stores it as a 16-bit unsigned integer in the 2 bytes at the specified byte offset of this
DataView.DataView.prototype.setUint32()Takes a number and stores it as a 32-bit unsigned integer in the 4 bytes at the specified byte offset of this
DataView.DataView.prototype.setUint8()Takes a number and stores it as an 8-bit unsigned integer in the byte at the specified byte offset of this
DataView.
Examples
>Using DataView
const buffer = new ArrayBuffer(16);const view = new DataView(buffer, 0);view.setInt16(1, 42);view.getInt16(1); // 42Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-dataview-objects> |