El objeto DataView

📅 19/01/2025 👤 Julio Fuente 📂 programar

Main Image

Descubra qué es un objeto DataView y cómo utilizarlo

DataViewEs una vista de un ArrayBuffer , como los Typed Arrays, pero en este caso los elementos del array pueden tener diferentes tamaños y tipos.

He aquí un ejemplo:

const buffer = new ArrayBuffer(64)const view = new DataView(buffer)

Dado que se trata de una vista de un búfer, podemos especificar desde qué byte queremos comenzar y la longitud:

const view = new DataView(buffer, 10) //start at byte 10
const view = new DataView(buffer, 10, 30) //start at byte 10, and add 30 items

Si no agregamos esos argumentos adicionales, la vista comienza en la posición 0 y carga todos los bytes presentes en el buffer.

Hay un conjunto de métodos que podemos usar para agregar datos al búfer:

Así es como se llama a uno de esos métodos:

const buffer = new ArrayBuffer(64)const view = new DataView(buffer)view.setInt16(0, 2019)

De forma predeterminada, los datos se almacenan utilizando la notación big endian . Puede sobrescribir esta configuración y utilizar little endian agregando un tercer parámetro con el truevalor:

const buffer = new ArrayBuffer(64)const view = new DataView(buffer)view.setInt16(0, 2019, true)

Aquí es cómo podemos obtener datos de la vista:

Ejemplo:

const buffer = new ArrayBuffer(64)const view = new DataView(buffer)view.setInt16(0, 2019)view.getInt16(0) //2019

Dado que a DataViewes un ArrayBufferView, tenemos esas 3 propiedades de solo lectura:

Una cosa que hay que tener en cuenta es que los arreglos tipificados no nos permiten controlar el orden de bytes: utilizan el orden de bytes del sistema . En general, esto funciona bien, porque el caso de uso principal, como dijimos, es utilizar el arreglo localmente, utilizando una de las API multimedia.

Si transfiere los datos de una matriz tipificada a otro sistema, es posible que los datos no estén mal codificados si utiliza Big Endian y usted utiliza Little Endian.

En caso de que necesite este tipo de control, DataView es una elección perfecta.




Tal vez te puede interesar:

  1. Introducción a React
  2. Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
  3. Cómo cambiar el valor de un nodo DOM
  4. Cómo comprobar si un elemento DOM tiene una clase

Créditos de la imagen http://dbbeebom