Summary
The DataView
view provides a low-level interface for reading data from and writing it to an ArrayBuffer
.
Syntax
new DataView(buffer [, byteOffset [, byteLength]])
Parameters
-
buffer
-
An existing
ArrayBuffer
to use as the storage for the newDataView
object. -
byteOffset
Optional - The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the view of the buffer will start with the first byte.
-
byteLength
Optional - The number of elements in the byte array. If unspecified, length of the view will match the buffer's length.
Return value
A new DataView
object representing the specified data buffer.
Errors thrown
-
RangeError
-
Thrown if the
byteOffset
andbyteLength
result in the specified view extending past the end of the buffer.
Description
Detect endianness
You'll probably need to detect the type of architecture your script is running, here is a little trick to check it. See Endianness for more information.
var littleEndian = (function() { var buffer = new ArrayBuffer(2); new DataView(buffer).setInt16(0, 256, true); return new Int16Array(buffer)[0] === 256; })(); console.log(littleEndian); // true or false
Properties
- DataView.length
-
The
DataView
constructor's length property whose value is 3. -
DataView.prototype
-
Allows the addition of properties to all
DataView
objects.
DataView
instances
All DataView
instances inherit from DataView.prototype
.
Properties
- DataView.prototype.constructor
-
Specifies the function that creates an object's prototype. The initial value is the standard built-in
DataView
constructor. -
DataView.prototype.buffer
Read only -
The
ArrayBuffer
referenced by this view. Fixed at construction time and thus read only. -
DataView.prototype.byteLength
Read only -
The length (in bytes) of this view from the start of its
ArrayBuffer
. Fixed at construction time and thus read only. -
DataView.prototype.byteOffset
Read only -
The offset (in bytes) of this view from the start of its
ArrayBuffer
. Fixed at construction time and thus read only.
Methods
Read
-
DataView.prototype.getInt8()
- Gets a signed 8-bit integer (byte) at the specified byte offset from the start of the view.
-
DataView.prototype.getUint8()
- Gets an unsigned 8-bit integer (unsigned byte) at the specified byte offset from the start of the view.
-
DataView.prototype.getInt16()
- Gets a signed 16-bit integer (short) at the specified byte offset from the start of the view.
-
DataView.prototype.getUint16()
- Gets an unsigned 16-bit integer (unsigned short) at the specified byte offset from the start of the view.
-
DataView.prototype.getInt32()
- Gets a signed 32-bit integer (long) at the specified byte offset from the start of the view.
-
DataView.prototype.getUint32()
- Gets an unsigned 32-bit integer (unsigned long) at the specified byte offset from the start of the view.
-
DataView.prototype.getFloat32()
- Gets a signed 32-bit float (float) at the specified byte offset from the start of the view.
-
DataView.prototype.getFloat64()
- Gets a signed 64-bit float (double) at the specified byte offset from the start of the view.
Write
-
DataView.prototype.setInt8()
- Stores a signed 8-bit integer (byte) value at the specified byte offset from the start of the view.
-
DataView.prototype.setUint8()
- Stores an unsigned 8-bit integer (unsigned byte) value at the specified byte offset from the start of the view.
-
DataView.prototype.setInt16()
- Stores a signed 16-bit integer (short) value at the specified byte offset from the start of the view.
-
DataView.prototype.setUint16()
- Stores an unsigned 16-bit integer (unsigned short) value at the specified byte offset from the start of the view.
-
DataView.prototype.setInt32()
- Stores a signed 32-bit integer (long) value at the specified byte offset from the start of the view.
-
DataView.prototype.setUint32()
- Stores an unsigned 32-bit integer (unsigned long) value at the specified byte offset from the start of the view.
-
DataView.prototype.setFloat32()
- Stores a signed 32-bit float (float) value at the specified byte offset from the start of the view.
-
DataView.prototype.setFloat64()
- Stores a signed 64-bit float (double) value at the specified byte offset from the start of the view.
Example
var buffer = new ArrayBuffer(16); var dv = new DataView(buffer, 0); dv.setInt16(1, 42); dv.getInt16(1); //42
Specifications
Specification | Status | Comment |
---|---|---|
Typed Array Specification | Obsolete | Superseded by ECMAScript 6. |
ECMAScript 6 (ECMA-262) The definition of 'DataView' in that specification. |
Release Candidate | Initial definition in an ECMA standard. |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 9.0 | 15.0 (15.0) | 10 | 12.1 | 5.1 |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 4.0 | (Yes) | 15.0 (15) | ? | 12.0 | 4.2 |
See also
- jDataView: JavaScript library that polyfills and extends the
DataView
API to all browsers and Node.js.
Document Tags and Contributors
Tags:
Contributors to this page: Sheppy, RReverser, blackbingo, fscholz, vjeux, DaveG, luke@mozilla.com, teoli, tregagnon, Sephr, BrandonLockaby, yyss, Nfroidure
Last updated by:
fscholz,