To tłumaczenie jest niekompletne. Pomóż przetłumaczyć ten artykuł z języka angielskiego.

DataView  udostępnia niskopoziowy interfejs do zapisu i odczytu typów numerycznych w formie ArrayBuffer niezależnie od kodowania platformy.

Składnia

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

Parametry

buffer
Istniejący ArrayBuffer lub SharedArrayBuffer używany jako pamięć dla  obiektu  DataView .
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.

Exceptions

RangeError
Thrown if the byteOffset and byteLength result in the specified view extending past the end of the buffer.

Description

Endianness

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

Properties

All DataView instances inherit from DataView.prototype and allows the addition of properties to all DataView objects.

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 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.
Draft  

Browser compatibility

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
DataView() without new throwsChrome Full support YesEdge Full support YesFirefox Full support 40IE No support NoOpera Full support YesSafari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android Full support 40Opera Android ? Safari iOS ? Samsung Internet Android ? nodejs Full support 0.12
SharedArrayBuffer accepted as bufferChrome Full support 60Edge ? Firefox Full support 55IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android Full support 55Opera Android ? Safari iOS ? Samsung Internet Android ? nodejs ?
bufferChrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
byteLengthChrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
byteOffsetChrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
getFloat32Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
getFloat64Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
getInt16Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
getInt32Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
getInt8Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
getUint16Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
getUint32Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
getUint8Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
setFloat32Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
setFloat64Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
setInt16Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
setInt32Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
setInt8Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
setUint16Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
setUint32Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
setUint8Chrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes
prototypeChrome Full support 9Edge Full support 12Firefox Full support 15IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support 4Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 15Opera Android Full support 12Safari iOS Full support 4.2Samsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown

Compatibility notes

Starting with Firefox 40, 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

Autorzy i etykiety dokumentu

Autorzy tej strony: meron1122
Ostatnia aktualizacja: meron1122,