--- title: DataView slug: Web/JavaScript/Reference/Global_Objects/DataView translation_of: Web/JavaScript/Reference/Global_Objects/DataView ---
DataView 視圖提供了一個底層介面來讀寫 {{jsxref("ArrayBuffer")}} 中的二進位資料。DataView 能用多種不同的型別對 ArrayBuffer 進行修改、解讀,且可自訂資料的位元組順序而不受系統平台限制。DataView 物件僅為視圖,並不會存放資料,所有的資料皆實際儲存於 ArrayBuffer 物件當中。
new DataView(buffer [, byteOffset [, byteLength]])
bufferbyteOffset {{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.Multi-byte number formats are represented in memory differently depending on machine architecture, see {{Glossary("Endianness")}} for an explanation. DataView accessors provide explicit control of how data will be accessed irrespective of the platform architecture's endianness.
var littleEndian = (function() {
  var 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
DataView constructor's length property whose value is 3.DataView objects.DataView 實例All 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('Typed Array')}} | {{Spec2('Typed Array')}} | Superseded by ECMAScript 6 | 
| {{SpecName('ES6', '#sec-dataview-constructor', 'DataView')}} | {{Spec2('ES6')}} | Initial definition in an ECMA standard | 
| {{SpecName('ESDraft', '#sec-dataview-constructor', 'DataView')}} | {{Spec2('ESDraft')}} | 
{{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.