Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

DataView provê uma interface de baixo nível para leitura e escrita de múltiplos tipos de número em um ArrayBuffer, independentemente da extremidade (endianness) 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 número 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 números Multi-byte são representados em memória de formas diferentes dependendo da arquitetura da máquina, veja Endianness para uma explicação. Assessores do DataView provê controle explícito de como o dado será acessado independentemente da extremidade (endianness) 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 Obsoleto Superseded by ECMAScript 6
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'DataView' in that specification.
Padrão Initial definition in an ECMA standard
ECMAScript Latest Draft (ECMA-262)
The definition of 'DataView' in that specification.
Rascunho  

Compatibilidade - Browser

Estamos convertendo nossos dados de compatibilidade para o formato JSON. Esta tabela de compatibilidade ainda usa o formato antigo, pois ainda não convertemos os dados que ela contém. Descubra como você pode ajudar!

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: duduindo, fabriciofrontarolli
Última atualização por: duduindo,