--- title: DataView slug: Web/JavaScript/Reference/Global_Objects/DataView tags: - Constructor - DataView - JavaScript - NeedsTranslation - TopicStub - TypedArrays translation_of: Web/JavaScript/Reference/Global_Objects/DataView ---
The DataView
view provides a low-level interface for reading data from and writing it to an {{jsxref("ArrayBuffer")}}.
new DataView(buffer [, byteOffset [, byteLength]])
buffer
DataView
object.byteOffset
{{optional_inline}}byteLength
{{optional_inline}}A new DataView
object representing the specified data buffer.
{{jsxref("RangeError")}}
byteOffset
and byteLength
result in the specified view extending past the end of the buffer.You'll probably need to detect the type of architecture your script is running, here is a little trick to check it. See {{Glossary("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
DataView
constructor's length property whose value is 3.DataView
objects.DataView
instancesAll DataView
instances inherit from {{jsxref("DataView.prototype")}}.
{{page('en-US/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Properties')}}
{{page('en-US/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Methods')}}
var buffer = new ArrayBuffer(16); var dv = new DataView(buffer, 0); dv.setInt16(1, 42); dv.getInt16(1); //42
Specification | Status | Comment |
---|---|---|
{{SpecName('ES6', '#sec-dataview-constructor', 'DataView')}} | {{Spec2('ES6')}} | Initial definition in an ECMA standard |
{{SpecName('Typed Array')}} | {{Spec2('Typed Array')}} | Superseded by ECMAScript 6 |
{{CompatibilityTable}}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 9.0 | {{CompatGeckoDesktop("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 | {{CompatVersionUnknown}} | {{CompatGeckoMobile("15")}} | {{CompatUnknown}} | 12.0 | 4.2 |
Starting with Gecko / SpiderMonkey 40 {{geckoRelease(40)}}, DataView
requires to be constructed with a {{jsxref("Operators/new", "new")}} operator. Calling DataView()
as a function without new
, will throw a {{jsxref("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);
DataView
API to all browsers and Node.js.