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știundefined. Accesul se face doar printr-o vedere:new Uint8Array(buffer)[0].
Comenzi înrudite
Typed arrays (Uint8Array, Float64Array...): Tablouri de lungime fixă cu numere de un singur tip, pentru date binare: imagini, fișiere, audio, rețea.DataView: Citește și scrie numere de tipuri diferite la orice poziție dintr-un ArrayBuffer, cu ordinea octeților aleasă.ArrayBuffer.prototype.resize / transfer: Redimensionează un ArrayBuffer sau îi mută memoria într-unul nou, lăsându-l pe cel vechi detașat.