MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/d6d7ff2e2f9c

翻譯不完整。請協助 翻譯此英文文件

DataView 視圖提供了一個底層介面來讀寫 ArrayBuffer 中的二進位資料。DataView 能用多種不同的型別對 ArrayBuffer 進行修改、解讀,且可自訂資料的位元組順序而不受系統平台限制。DataView 物件僅為視圖,並不會存放資料,所有的資料皆實際儲存於 ArrayBuffer 物件當中。

語法

new DataView(buffer [, byteOffset [, byteLength]])

參數

buffer
要給DataView物件操作的資料容器並且不能為null
byteOffset 選擇性
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 選擇性
The number of elements in the byte array. If unspecified, length of the view will match the buffer's length.

回傳值

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.

描述

位元組順序

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 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.length
The DataView constructor's length property whose value is 3.
DataView.prototype
Allows the addition of properties to all DataView objects.

DataView 實例

All DataView instances inherit from DataView.prototype.

屬性

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.

方法

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.

範例

var buffer = new ArrayBuffer(16);
var dv = new DataView(buffer, 0);

dv.setInt16(1, 42);
dv.getInt16(1); //42

規範

Specification Status Comment
Typed Array Specification Obsolete Superseded by ECMAScript 6
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'DataView' in that specification.
Standard Initial definition in an ECMA standard
ECMAScript Latest Draft (ECMA-262)
The definition of 'DataView' in that specification.
Living Standard  

瀏覽器相容性

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);

參見

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

文件標籤與貢獻者

 此頁面的貢獻者: edu1218, jackblackevo
 最近更新: edu1218,