Manuale di Referenza Array Tipizzato JavaScript

Array tipizzati JavaScript

In JavaScript, gli array tipizzati sono buffer di dati binari simili agli array.

Non esiste una proprietà o oggetto JavaScript chiamato TypedArray, ma le proprietà e i metodi possono essere utilizzati insieme agli oggetti array tipizzati:

Esempio

const myArr = new Int8Array(10);

Prova tu stesso

Oggetto array tipizzato

Oggetto Tipo di dati Intervallo
Int8Array Intero con segno (byte) -128/127
Uint8Array Intero senza segno (byte) 0/255
Uint8ClampedArray Intero senza segno (byte) 0/255
Int16Array Intero breve -32768/32767
Uint16Array Intero breve senza segno 0/65535
Int32Array Intero lungo con segno -231/231-1
Uint32Array Intero lungo senza segno 0/232
Float32Array Punto flottante - 7 cifre significative 1.2x10-38/3.4x1038
Float64Array Punto flottante a doppia precisione - 16 cifre significative 5.0x10-324/1.8x10308
BigInt64Array Intero con segno grande -263/263-1
BigUint64Array Intero grande unsigned 0/264

Spiegazione

Gli array tipizzati non sono array.

Il metodo isArray() sugli array tipizzati restituisce false.

Gli array tipizzati non supportano molti metodi degli array (come push e pop).

Gli array tipizzati sono oggetti simili agli array, utilizzati per memorizzare dati binari nella memoria.

Metodi e proprietà degli array tipizzati

Metodo / Proprietà Descrizione
BYTES_PER_ELEMENT Calcola l'attributo del numero di byte utilizzati per memorizzare un elemento.
fill() Riempie tutti gli elementi con un valore.
find() Restituisce il primo elemento che soddisfa la condizione.
name Restituisce il nome dell'array tipizzato.
of() Crea un array tipizzato da un array.
some() Restituisce true se un elemento soddisfa una condizione.

Confronto tra Uint8Array e Uint8ClampedArray

La differenza tra Uint8Array e Uint8ClampedArray sta nel modo in cui si aggiungono i valori.

Se si imposta un elemento di Uint8ClampedArray a un valore al di fuori dell'intervallo 0-255, esso viene impostato implicitamente a 0 o 255.

Gli array tipizzati prendono solo i primi 8 bit di valore.

I vantaggi degli array tipizzati

Gli array tipizzati forniscono un metodo per gestire dati binari in modo efficace, come un array lavora in C.

Gli array tipizzati sono memoria originale, quindi JavaScript può passarli a qualsiasi funzione senza doverli convertire in un altro formato.

Gli array tipizzati sono molto più veloci degli array normali e vengono utilizzati per passare dati a funzioni che possono utilizzare dati binari originali (gioco su computer, WebGL, Canvas, API dei file, API dei media).

Il browser API supporta gli array tipizzati

Esempio di Fetch API

fetch(url)
.then(request => request.arrayBuffer())
.then(arrayBuffer =>...);

Esempio di Canvas

const canvas = document.getElementById('my_canvas');
const context = canvas.getContext('2d');
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
const uint8ClampedArray = imageData.data;

Supporto del browser

typedArray È una caratteristica di ECMAScript6 (ES6).

Tutti i browser moderni supportano ES6 (JavaScript 2015).

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera

Internet Explorer 11 (e versioni precedenti) non supporta typedArray.