Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

DataView provee una interfaz de bajo nivel para la lectura y escritura de diferentes tipos de números dentro de un ArrayBuffer sin importar el endianness de la plataforma.

Sintaxis

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

Parámetros

buffer
Un ArrayBufferSharedArrayBuffer  existente que será utilizado por el nuevo objeto DataView.
byteOffset Optional
El desplazamiento, en bytes, desde el primer byte en el buffer, que servirá como referencia para iniciar la nueva vista. Si no es especificado, la vista comenzará con el primer byte del buffer.
byteLength Optional
El número de elementos en el array de bytes. Si no es especificado, el tamaño de la vista será el mismo tamaño del buffer.

Valor retornado

Un nuevo objeto DataView representando el buffer de datos especificado.

Excepciones

RangeError
Esta excepción es lanzada si el byteOffset y el byteLength resultante en la nueva vista sobrepasan el final del 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)
La definición de 'DataView' en esta especificación.
Standard Initial definition in an ECMA standard
ECMAScript Latest Draft (ECMA-262)
La definición de 'DataView' en esta especificación.
Draft  

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Soporte básico912151012.15.1
DataView() without new throws Si Si40 No Si ?
SharedArrayBuffer accepted as buffer60 ?55 ? ? ?
buffer912151012.15.1
byteLength912151012.15.1
byteOffset912151012.15.1
getFloat32912151012.15.1
getFloat64912151012.15.1
getInt16912151012.15.1
getInt32912151012.15.1
getInt8912151012.15.1
getUint16912151012.15.1
getUint32912151012.15.1
getUint8912151012.15.1
setFloat32912151012.15.1
setFloat64912151012.15.1
setInt16912151012.15.1
setInt32912151012.15.1
setInt8912151012.15.1
setUint16912151012.15.1
setUint32912151012.15.1
setUint8912151012.15.1
prototype912151012.15.1
FeatureAndroid webviewChrome para AndroidEdge mobileFirefox para AndroidOpera AndroidiOS SafariSamsung Internet
Soporte básico4 Si Si15124.2 Si
DataView() without new throws ? ? ?40 ? ? ?
SharedArrayBuffer accepted as buffer ? ? ?55 ? ? ?
buffer4 Si Si15124.2 Si
byteLength4 Si Si15124.2 Si
byteOffset4 Si Si15124.2 Si
getFloat324 Si Si15124.2 Si
getFloat644 Si Si15124.2 Si
getInt164 Si Si15124.2 Si
getInt324 Si Si15124.2 Si
getInt84 Si Si15124.2 Si
getUint164 Si Si15124.2 Si
getUint324 Si Si15124.2 Si
getUint84 Si Si15124.2 Si
setFloat324 Si Si15124.2 Si
setFloat644 Si Si15124.2 Si
setInt164 Si Si15124.2 Si
setInt324 Si Si15124.2 Si
setInt84 Si Si15124.2 Si
setUint164 Si Si15124.2 Si
setUint324 Si Si15124.2 Si
setUint84 Si Si15124.2 Si
prototype4 Si Si15124.2 Si

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

Etiquetas y colaboradores del documento

 Colaboradores en esta página: andresroberto
 Última actualización por: andresroberto,