¿Qué son los typed arrays?

| Última modificación: 18 de marzo de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En el amplio mundo del desarrollo web, existen conceptos y herramientas que hacen posible el manejo eficiente de datos binarios y su procesamiento en diferentes aplicaciones. Uno de estos conceptos clave son los typed arrays o arrays tipados. Estas estructuras de datos especiales son fundamentales para trabajar con datos binarios en JavaScript de manera más eficiente y rápida. En este artículo, nos sumergiremos en el emocionante universo de los typed arrays, exploraremos su funcionamiento, su relación con datos binarios y su relevancia en el desarrollo web moderno.

typed arrays

¿Por qué son importantes los typed arrays?

Antes de la llegada de los typed arrays, los desarrolladores tenían que lidiar con arreglos normales de JavaScript para manejar datos binarios. Sin embargo, esto resultaba ineficiente, debido a que JavaScript trata todos los elementos de un arreglo como números de punto flotante de 64 bits (double-precision) o, en otras palabras, números de coma flotante.

Cuando se trata de datos binarios, es mucho más eficiente trabajar con enteros de 8, 16, 32 bits, etc., en lugar de números de punto flotante. Los typed arrays resuelven este problema al permitir que los desarrolladores especifiquen el tipo de datos con el que desean trabajar. Esto mejora significativamente el rendimiento y la velocidad de procesamiento de los datos binarios.

Los diferentes tipos de typed arrays

Los typed arrays vienen en varias formas, cada una diseñada para manejar diferentes tipos de datos binarios.

Int8Array, Uint8Array, Uint8ClampedArray

Estos typed arrays trabajan con enteros de 8 bits con y sin signo. El Int8Array permite valores entre -128 y 127, mientras que el Uint8Array y Uint8ClampedArray solo trabajan con valores no negativos entre 0 y 255.

Int16Array, Uint16Array

Estos typed arrays manejan enteros de 16 bits con y sin signo. Int16Array permite valores entre -32,768 y 32,767, mientras que Uint16Array solo permite valores no negativos entre 0 y 65,535.

Int32Array, Uint32Array

Los typed arrays Int32Array y Uint32Array trabajan con enteros de 32 bits con y sin signo, respectivamente. Int32Array permite valores entre -2,147,483,648 y 2,147,483,647, mientras que Uint32Array solo permite valores no negativos entre 0 y 4,294,967,295.

Float32Array, Float64Array

Estos typed arrays manejan números de coma flotante de 32 y 64 bits, respectivamente. Float32Array permite valores con una precisión de 7 dígitos decimales, mientras que Float64Array ofrece una precisión mucho mayor, de hasta 15 dígitos decimales.

¿Cómo se utilizan los typed arrays?

Para crear un typed array, se puede usar el método Array.from() o el constructor de cada tipo de typed array. Aquí hay un ejemplo de cómo crear un Uint8Array a partir de un arreglo de números:

const numeros = [10, 20, 30, 40, 50];
const typedArray = new Uint8Array(numeros);
console.log(typedArray); // Uint8Array [ 10, 20, 30, 40, 50 ]

Una vez se tiene el typed array, se pueden realizar diversas operaciones con él, como leer y escribir datos binarios, ordenarlos, filtrarlos y más.

Lectura y escritura de datos binarios

Los typed arrays ofrecen métodos para leer y escribir datos binarios de manera eficiente. Por ejemplo, el método set() se puede usar para escribir datos binarios en un typed array:

const typedArray = new Uint8Array(5);
const datos = [100, 200, 50, 175, 240];
typedArray.set(datos);
console.log(typedArray); // Uint8Array [ 100, 200, 50, 175, 240 ]

Además, el método get() permite leer datos binarios de un typed array:

const typedArray = new Uint8Array([100, 200, 50, 175, 240]);
const valor = typedArray[2];
console.log(valor); // 50

Endianness y typed arrays

Cuando se trabaja con datos binarios, es importante tener en cuenta el concepto de endianness u orden de bytes. El endianness determina cómo se almacenan los bytes de datos multibyte en la memoria.

Hay dos tipos principales de endianness:

  • Big Endian: en arquitecturas de big endian, los bytes más significativos se almacenan en la dirección de memoria más baja y los menos significativos en la dirección de memoria más alta. Esto es similar a leer de izquierda a derecha.
  • Little Endian: en arquitecturas de little endian, los bytes menos significativos se almacenan en la dirección de memoria más baja y los más significativos en la dirección de memoria más alta. Esto es similar a leer de derecha a izquierda.

¿Qué sigue?

Si deseas dominar los typed arrays y todas las herramientas esenciales para convertirte en un experto en desarrollo web, no dudes en unirte al Desarrollo Web Full Stack Bootcamp de KeepCoding. En esta formación de alta intensidad, aprenderás mucho más sobre los typed arrays, las últimas tecnologías web y recibirás una formación completa para entrar en el sector tecnológico, una industria en constante crecimiento con una alta demanda de profesionales. Prepárate para cambiar tu vida y construir una carrera exitosa en el apasionante mundo del desarrollo web con el respaldo de KeepCoding. ¡Inscríbete ahora y aprovecha esta oportunidad!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado