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

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' в этой спецификации.
Черновик  

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

ВозможностьChromeEdgeFirefoxInternet ExplorerOperaSafari
Базовая поддержка912151012.15.1
DataView() without new throws Да Да40 Нет Да ?
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
ВозможностьAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Базовая поддержка4 Да Да15124.2 Да
DataView() without new throws ? ? ?40 ? ? ?
SharedArrayBuffer accepted as buffer ? ? ?55 ? ? ?
buffer4 Да Да15124.2 Да
byteLength4 Да Да15124.2 Да
byteOffset4 Да Да15124.2 Да
getFloat324 Да Да15124.2 Да
getFloat644 Да Да15124.2 Да
getInt164 Да Да15124.2 Да
getInt324 Да Да15124.2 Да
getInt84 Да Да15124.2 Да
getUint164 Да Да15124.2 Да
getUint324 Да Да15124.2 Да
getUint84 Да Да15124.2 Да
setFloat324 Да Да15124.2 Да
setFloat644 Да Да15124.2 Да
setInt164 Да Да15124.2 Да
setInt324 Да Да15124.2 Да
setInt84 Да Да15124.2 Да
setUint164 Да Да15124.2 Да
setUint324 Да Да15124.2 Да
setUint84 Да Да15124.2 Да
prototype4 Да Да15124.2 Да

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

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,