javascript class
DataView
The DataView view provides a low-level interface for reading and writing multiple number types in a binary ArrayBuffer, without having to care about the platform’s endianness.
Description
Endianness
Multi-byte number formats are represented in memory differently depending on machine architecture — see Endianness 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 use DataView instead of typed arrays to read and write multi-byte values. See WebAssembly.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 false
[!NOTE]
DataViewdefaults to big-endian read and write, but most platforms use little-endian.
Constructor
DataView()- : Creates a new
DataViewobject.
- : Creates a new
Instance properties
These properties are defined on DataView.prototype and shared by all DataView instances.
buffer- : Returns the
ArrayBufferreferenced by theDataView.
- : Returns the
byteLength- : Returns the length (in bytes) of the
DataView.
- : Returns the length (in bytes) of the
byteOffset- : Returns the offset (in bytes) of the
DataViewfrom the start of itsArrayBuffer.
- : Returns the offset (in bytes) of the
DataView.prototype.constructor- : The constructor function that created the instance object. For
DataViewinstances, the initial value is theDataViewconstructor.
- : The constructor function that created the instance object. For
DataView.prototype[Symbol.toStringTag]- : The initial value of the
[Symbol.toStringTag]property is the string"DataView". This property is used intoString().
- : The initial value of the
Instance methods
getBigInt64()- : Reads 8 bytes starting at the specified byte offset of this
DataViewand interprets them as a 64-bit signed integer.
- : Reads 8 bytes starting at the specified byte offset of this
getBigUint64()- : Reads 8 bytes starting at the specified byte offset of this
DataViewand interprets them as a 64-bit unsigned integer.
- : Reads 8 bytes starting at the specified byte offset of this
getFloat16()- : Reads 2 bytes starting at the specified byte offset of this
DataViewand interprets them as a 16-bit floating point number.
- : Reads 2 bytes starting at the specified byte offset of this
getFloat32()- : Reads 4 bytes starting at the specified byte offset of this
DataViewand interprets them as a 32-bit floating point number.
- : Reads 4 bytes starting at the specified byte offset of this
getFloat64()- : Reads 8 bytes starting at the specified byte offset of this
DataViewand interprets them as a 64-bit floating point number.
- : Reads 8 bytes starting at the specified byte offset of this
getInt16()- : Reads 2 bytes starting at the specified byte offset of this
DataViewand interprets them as a 16-bit signed integer.
- : Reads 2 bytes starting at the specified byte offset of this
getInt32()- : Reads 4 bytes starting at the specified byte offset of this
DataViewand interprets them as a 32-bit signed integer.
- : Reads 4 bytes starting at the specified byte offset of this
getInt8()- : Reads 1 byte at the specified byte offset of this
DataViewand interprets it as an 8-bit signed integer.
- : Reads 1 byte at the specified byte offset of this
getUint16()- : Reads 2 bytes starting at the specified byte offset of this
DataViewand interprets them as a 16-bit unsigned integer.
- : Reads 2 bytes starting at the specified byte offset of this
getUint32()- : Reads 4 bytes starting at the specified byte offset of this
DataViewand interprets them as a 32-bit unsigned integer.
- : Reads 4 bytes starting at the specified byte offset of this
getUint8()- : Reads 1 byte at the specified byte offset of this
DataViewand interprets it as an 8-bit unsigned integer.
- : Reads 1 byte at the specified byte offset of this
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.
- : Takes a BigInt and stores it as a 64-bit signed integer in the 8 bytes starting at the specified byte offset of this
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.
- : Takes a BigInt and stores it as a 64-bit unsigned integer in the 8 bytes starting at the specified byte offset of this
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.
- : Takes a number and stores it as a 16-bit float in the 2 bytes starting at the specified byte offset of this
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.
- : Takes a number and stores it as a 32-bit float in the 4 bytes starting at the specified byte offset of this
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.
- : Takes a number and stores it as a 64-bit float in the 8 bytes starting at the specified byte offset of this
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.
- : Takes a number and stores it as a 16-bit signed integer in the 2 bytes at the specified byte offset of this
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.
- : Takes a number and stores it as a 32-bit signed integer in the 4 bytes at the specified byte offset of this
setInt8()- : Takes a number and stores it as an 8-bit signed integer in the byte at the specified byte offset of this
DataView.
- : Takes a number and stores it as an 8-bit signed integer in the byte at the specified byte offset of this
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.
- : Takes a number and stores it as a 16-bit unsigned integer in the 2 bytes at the specified byte offset of this
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.
- : Takes a number and stores it as a 32-bit unsigned integer in the 4 bytes at the specified byte offset of this
setUint8()- : Takes a number and stores it as an 8-bit unsigned integer in the byte at the specified byte offset of this
DataView.
- : Takes a number and stores it as an 8-bit unsigned integer in the byte at the specified byte offset of this
Examples
Using DataView
const buffer = new ArrayBuffer(16);
const view = new DataView(buffer, 0);
view.setInt16(1, 42);
view.getInt16(1); // 42