В процессе перевода.

Вид DataView предоставляет низко-уровневый интерфейс для чтения и записи многочисленных числовых типов в бинарном ArrayBuffer, независимо от порядка байтов платформы.

Синтаксис

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

Параметры

buffer
Существующий ArrayBuffer или SharedArrayBuffer для использования как хранилище для нового объекта DataView.
byteOffset Необязательный
Смещение в байтах к первому байту в заданном буфере. Если не определён, то вид буфера будет начинаться с первого байта.
byteLength Необязательный
Количество элементов в массиве байтов. Если не определён, то длина вида будет соответствовать длине буфера.

Возвращаемое значение

Новый объект DataView представляющий определённый буфер данных.

Исключения

RangeError
Выкидывается если byteOffset  и byteLength заходит за пределы буфера.

Описание

Порядок байтов

Многобайтовые числовые форматы представлены в памяти по разному в зависимости от архитектуры машины, см Endianness для объяснения. Аксессоры DataView предоставляют явный контроль над обращением к данным вне зависимости от порядка байтов архитектуры платформы.

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

Свойства

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.

Методы

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 Устаревшая Superseded by ECMAScript 6
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'DataView' в этой спецификации.
Стандарт Initial definition in an ECMA standard
ECMAScript Latest Draft (ECMA-262)
Определение 'DataView' в этой спецификации.
Черновик  

Таблица совместимости

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
DataViewChrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
DataView() without new throwsChrome Полная поддержка ДаEdge Полная поддержка ДаFirefox Полная поддержка 40IE Нет поддержки НетOpera Полная поддержка ДаSafari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android Полная поддержка 40Opera Android ? Safari iOS ? Samsung Internet Android ? nodejs Полная поддержка 0.12
SharedArrayBuffer accepted as bufferChrome Полная поддержка 60Edge ? Firefox Полная поддержка 55IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android Полная поддержка 55Opera Android ? Safari iOS ? Samsung Internet Android ? nodejs ?
bufferChrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
byteLengthChrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
byteOffsetChrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
getFloat32Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
getFloat64Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
getInt16Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
getInt32Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
getInt8Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
getUint16Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
getUint32Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
getUint8Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
setFloat32Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
setFloat64Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
setInt16Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
setInt32Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
setInt8Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
setUint16Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
setUint32Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
setUint8Chrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да
prototypeChrome Полная поддержка 9Edge Полная поддержка 12Firefox Полная поддержка 15IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка Даnodejs Полная поддержка Да

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Совместимость неизвестна  
Совместимость неизвестна

Замечания совместимости

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

Также

Метки документа и участники

Внесли вклад в эту страницу: mdnwebdocs-bot, MuradAz
Обновлялась последний раз: mdnwebdocs-bot,