mozilla
Your Search Results

    DataView

    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 new DataView 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 and byteLength 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

    Firefox-specific notes

    Starting with Gecko / SpiderMonkey 40 (Firefox 40 / Thunderbird 40 / SeaMonkey 2.37), DataView requires to be constructed with a new operator. Calling DataView() as a function without new, will throw a TypeError from now on.

    var dv = DataView(buffer, 0); 
    // TypeError: calling a builtin DataView constructor without new is forbidden
    var dv = new DataView(buffer, 0);

    See also

    • jDataView: JavaScript library that polyfills and extends the DataView API to all browsers and Node.js.

    Document Tags and Contributors

    Last updated by: fscholz,
    Hide Sidebar