ArrayBuffer în JavaScript

Un bloc de memorie brută, de lungime dată în octeți; citit și scris prin typed arrays sau DataView.

Sintaxă
new ArrayBuffer(octeti, optiuni)
ArrayBuffer.isView(valoare)
buffer.slice(inceput, sfarsit)

Ce face ArrayBuffer

ArrayBuffer reprezintă octeți bruți, inițial zero. Nu poți citi sau scrie direct în el: creezi peste el o „vedere”, un typed array (new Uint8Array(buffer)) sau un DataView. Primești un ArrayBuffer de la fetch (raspuns.arrayBuffer()), de la FileReader sau de la WebSocket.

ArrayBuffer.isView(x) returnează true dacă x este o vedere (typed array sau DataView). slice copiază o bucată într-un ArrayBuffer nou.

Parametri

Parametru Descriere
octeti Mărimea în octeți.
optiuni Opțional. { maxByteLength } pentru un buffer care poate fi redimensionat.

Ce returnează

Un obiect ArrayBuffer.

Exemple

Exemplul 1: Memorie, vederi și copiere

const buffer = new ArrayBuffer(8);
const vedere = new Uint8Array(buffer);

vedere.set([1, 2, 3, 4, 5, 6, 7, 8]);
console.log(buffer.byteLength);
console.log(new Uint8Array(buffer.slice(2, 5)));
console.log(ArrayBuffer.isView(vedere), ArrayBuffer.isView(buffer));

Rezultat

8
Uint8Array(3) [ 3, 4, 5 ]
true false

Greșeli frecvente

  • Încerci buffer[0] și primești undefined. Accesul se face doar printr-o vedere: new Uint8Array(buffer)[0].

Comenzi înrudite