Manual de Referência Array Tipificada JavaScript

Array tipificado do JavaScript

No Javascript, os arrays tipificados são áreas de memória em buffer semelhantes a arrays binários.

Não existe uma propriedade ou objeto JavaScript chamado TypedArray, mas as propriedades e métodos podem ser usados com objetos de array tipificado:

instância

const myArr = new Int8Array(10);

Experimente você mesmo

objeto de array tipificado

objeto tipo de dados escopo
Int8Array inteiro com sinal (byte) -128/127
Uint8Array inteiro sem sinal (octeto) 0/255
Uint8ClampedArray inteiro sem sinal (octeto) 0/255
Int16Array inteiro curto -32768/32767
Uint16Array inteiro curto sem sinal 0/65535
Int32Array inteiro longo com sinal -231/231-1
Uint32Array inteiro longo sem sinal 0/232
Float32Array flutuante - 7 dígitos significativos 1.2x10-38/3.4x1038
Float64Array flutuante duplo precisão - 16 dígitos significativos 5.0x10-324/1.8x10308
BigInt64Array inteiro grande com sinal -263/263-1
BigUint64Array Grande inteiro sem sinal 0/264

Explicação

Os arrays tipificados não são arrays.

O isArray() em arrays tipificados retorna false.

Os arrays tipificados não suportam muitos métodos de array (como push e pop).

Os arrays tipificados são objetos semelhantes a arrays, usados para armazenar dados binários em memória.

Métodos e atributos do Typed Array

Método / Atributo Descrição
BYTES_PER_ELEMENT Calcula o atributo do número de bytes usados para armazenar um elemento.
fill() Preencha todos os elementos com um valor.
find() Retorna o primeiro elemento que atende à condição.
name Retorna o nome do array tipificado.
of() Crie arrays tipificados a partir de arrays.
some() Se um elemento atender a uma condição, retorna true.

Uint8Array vs Uint8ClampedArray

A diferença entre Uint8Array e Uint8ClampedArray está na forma de adicionar valores.

Se um elemento do Uint8ClampedArray for definido fora do intervalo de 0-255, ele será definido como 0 ou 255 por padrão.

Os arrays tipificados pegam apenas os 8 primeiros bits de valor.

Vantagens dos arrays tipificados

Os arrays tipificados fornecem um método para manipular dados binários, tão eficaz quanto um array em C.

Os arrays tipificados são memória original, então o JavaScript pode passá-los diretamente para qualquer função, sem precisar converter os dados para outra representação.

Os arrays tipificados são muito mais rápidos que os arrays normais, usados para passar dados para funções que podem usar dados binários originais (jogos de computador, WebGL, Canvas, API de arquivos, API de mídia).

O API do navegador suporta arrays tipificados

Instância do Fetch API

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

Instância de 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;

Suporte do navegador

typedArray É uma característica do ECMAScript6 (ES6).

Todos os navegadores modernos suportam ES6 (JavaScript 2015).

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Sim Sim Sim Sim Sim

O Internet Explorer 11 (e versões anteriores) não suporta typedArray.