DataView

Esta tradução está incompleta. Ajude atraduzir este artigo.

DataView prove uma interface de baixo nivel para leitura e escrita de multiplos tipos de numero em um ArrayBuffer Independentemente da extremidade (endianess) da plataforma.

Sintaxe

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

Parametros

buffer
Um ArrayBuffer existente para usar como armazenamento de um novo objeto DataView.
byteOffset Optional
O offset, em bytes, para o primeiro byte em um determinado buffer, para ser referenciado pela nova view. Se não especificado, a view do buffer começará no primeiro byte.
byteLength Optional
O numero de elementos no byte array. Se não especificado, O tamanho da view será o mesmo tamanho do buffer.

Retorno

Um novo objeto DataView  representando o data buffer especificado. 

Exceções

RangeError
Lançado se o byteOffset e o byteLength especificados ultrapassar o fim novo buffer.

Descrição

Extremidade (Endianness)

Formatos de numeros Multi-byte são representados em memoria de formas diferentes dependendo da arquitetura da máquina, veja Endianness para um explicação. Accessores do DataView prove controle explicito de como o dado será acessado independentemente da extremidade (endianess) da arquitetura da plataforma. 

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

Propriedades

Todas instancias de DataView herdam de DataView.prototype e permite a adição de propriedades à todos objetos DataView.

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.

Métodos

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.

Exemplo

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

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

Especificações

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 2017 Draft (ECMA-262)
The definition of 'DataView' in that specification.
Draft  

Compatibilidade - Browser

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support 9.0 12 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

Notas especificas para Firefox

Começando com Gecko / SpiderMonkey 40 (Firefox 40 / Thunderbird 40 / SeaMonkey 2.37), DataView requer ser construido com o operador new . Chamando DataView() como uma função sem o new,  irá lançar um TypeError de agora em diante.

var dv = DataView(buffer, 0); 
// TypeError: calling a builtin DataView constructor without new is forbidden
var dv = new DataView(buffer, 0);

Veja também

  • jDataView: Biblioteca javascript que faz o polyfill e extende a API do DataView para todos os browsers e para o Node.js.

Etiquetas do documento e colaboradores

 Colaboradores desta página: fabriciofrontarolli
 Última atualização por: fabriciofrontarolli,