From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../reference/global_objects/dataview/index.html | 122 +++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 files/ru/web/javascript/reference/global_objects/dataview/index.html (limited to 'files/ru/web/javascript/reference/global_objects/dataview/index.html') diff --git a/files/ru/web/javascript/reference/global_objects/dataview/index.html b/files/ru/web/javascript/reference/global_objects/dataview/index.html new file mode 100644 index 0000000000..adf480e976 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/dataview/index.html @@ -0,0 +1,122 @@ +--- +title: DataView +slug: Web/JavaScript/Reference/Global_Objects/DataView +translation_of: Web/JavaScript/Reference/Global_Objects/DataView +--- +
{{JSRef}}
+ +

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

+ +
{{EmbedInteractiveExample("pages/js/dataview-constructor.html")}}
+ + + +

Синтаксис

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

Параметры

+ +
+
buffer
+
Существующий {{jsxref("ArrayBuffer")}} или {{jsxref("SharedArrayBuffer")}} {{experimental_inline}} для использования как хранилище для нового объекта DataView.
+
byteOffset {{optional_inline}}
+
Смещение в байтах к первому байту в заданном буфере. Если не определён, то вид буфера будет начинаться с первого байта.
+
byteLength {{optional_inline}}
+
Количество элементов в массиве байтов. Если не определён, то длина вида будет соответствовать длине буфера.
+
+ +

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

+ +

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

+ +

Исключения

+ +
+
{{jsxref("RangeError")}}
+
Выкидывается если byteOffset  и byteLength заходит за пределы буфера.
+
+ +

Описание

+ +

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

+ +

Многобайтовые числовые форматы представлены в памяти по разному в зависимости от архитектуры машины, см {{Glossary("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 {{jsxref("DataView.prototype")}} and allows the addition of properties to all DataView objects.

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Properties')}}

+ +

Методы

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Methods')}}

+ +

Пример

+ +
var buffer = new ArrayBuffer(16);
+var dv = new DataView(buffer, 0);
+
+dv.setInt16(1, 42);
+dv.getInt16(1); //42
+
+ +

Спецификация

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Superseded by ECMAScript 6
{{SpecName('ES6', '#sec-dataview-constructor', 'DataView')}}{{Spec2('ES6')}}Initial definition in an ECMA standard
{{SpecName('ESDraft', '#sec-dataview-constructor', 'DataView')}}{{Spec2('ESDraft')}} 
+ +

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

+ + + +

{{Compat("javascript.builtins.DataView")}}

+ +

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

+ +

Starting with Firefox 40, DataView requires to be constructed with a {{jsxref("Operators/new", "new")}} operator. Calling DataView() as a function without new, will throw a {{jsxref("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);
+ +

Также

+ + -- cgit v1.2.3-54-g00ecf