--- title: ArrayBuffer slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer tags: - Array tipizzati - ArrayBuffer - Constructor - Costruttore - JavaScript - TypedArrays translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer ---
{{JSRef}}

L'oggetto ArrayBuffer viene utilizzato per rappresentare un buffer di lunghezza fissa di dati non elaborati. Non è possibile manipolare il contenuto di un ArrayBuffer, è possibile invece creare un array di oggetti tipizzati o un oggetto di tipo {{jsxref("DataView")}} che rappresenta il buffer in uno specifico formato ed utilizzare questo per leggere e scrivere il contenuto del buffer.

{{EmbedInteractiveExample("pages/js/arraybuffer-constructor.html")}}

Sintassi

new ArrayBuffer(length)

Parametri

length
La dimensione, in bytes, dell'array buffer da creare.

Valori di ritorno

Un nuovo oggetto di tipo ArrayBuffer della dimensione specificata. Il suo contenuto è inzializzato a 0.

Eccezioni

Un {{jsxref("RangeError")}} viene generato se la lunghezza è maggiore di di {{jsxref("Number.MAX_SAFE_INTEGER")}} (>= 2 ** 53) oppure è negativa.

Descrizione

Il costruttore ArrayBuffer crea un nuovo ArrayBuffer di lunghezza specificata in bytes.

Ottenere un array buffer da dati pre-esistenti

Proprietà

ArrayBuffer.length
La dimensione del costruttore ArrayBuffer il cui valore è 1.
{{jsxref("ArrayBuffer.@@species", "get ArrayBuffer[@@species]")}}
La funzione costruttore utilizzata per creare oggetti derivati.
{{jsxref("ArrayBuffer.prototype")}}
Permette di aggiungere proprietà a tutti gli oggetti di tipo ArrayBuffer.

Metodi

{{jsxref("ArrayBuffer.isView", "ArrayBuffer.isView(arg)")}}
Restituisce true se args è una delle viste di ArrayBuffer, come un array di oggetti tipizzato o un {{jsxref("DataView")}}. Altrimenti restituisce false.
{{jsxref("ArrayBuffer.transfer", "ArrayBuffer.transfer(oldBuffer [, newByteLength])")}} {{experimental_inline}}
Restituisce un nuovo ArrayBuffer i cui contenuti sono presi dai dati dell'oggetto oldBuffer e successivamente troncato o esteso a zero tramite newByteLength.

Istanze

Tutte le istanze di ArrayBuffer ereditano da {{jsxref("ArrayBuffer.prototype")}}.

Proprietà

{{page('en-US/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Properties')}}

Metodi

{{page('en-US/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Methods')}}

{{jsxref("ArrayBuffer.slice()")}} {{non-standard_inline}}
Esegue le stesse operazioni di {{jsxref("ArrayBuffer.prototype.slice()")}}.

Esempio

In questo esempio viene creato un buffer di 8 byte con una vista di tipo {{jsxref("Global_Objects/Int32Array", "Int32Array")}} che si riferisce al buffer

var buffer = new ArrayBuffer(8);
var view   = new Int32Array(buffer);

Specifiche

Specification Status Comment
{{SpecName('Typed Array')}} {{Spec2('Typed Array')}} Sostituito da ECMAScript 6.
{{SpecName('ES6', '#sec-arraybuffer-constructor', 'ArrayBuffer')}} {{Spec2('ES6')}}

Definizione iniziale con standard ECMA. Specifica che new è richiesto.

{{SpecName('ESDraft', '#sec-arraybuffer-constructor', 'ArrayBuffer')}} {{Spec2('ESDraft')}}  

Browser compatibility

{{Compat("javascript.builtins.ArrayBuffer")}}

Note sulla compatibilità

Con ECMAScript 2015, ArrayBuffer deve essere inizializzato con l'operatore  {{jsxref("Operators/new", "new")}}. Inizializzare ArrayBuffer senza l'operatore new genererà un {{jsxref("TypeError")}}.

var dv = ArrayBuffer(10);
// TypeError: inizializzaree un ArrayBuffer senza il costruttore new
// genererà un errore
var dv = new ArrayBuffer(10);

Leggi anche