Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

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

Синтаксис

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

Параметры

buffer
An existing ArrayBuffer or SharedArrayBuffer to use as the storage for the new DataView object.
byteOffset Необязательный
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 Необязательный
The number of elements in the byte array. If unspecified, length of the view will match the buffer's length.

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

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

Исключения

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

Описание

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

Многобайтовое числовой формат в памяти представлен различно в зависимости от архитектуры машины, смотри 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 для AndroidiOS SafariSamsung InternetNode.js
Базовая поддержкаChrome Полная поддержка 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);

Также

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

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