aboutsummaryrefslogtreecommitdiff
path: root/files/it/web/javascript/reference/global_objects/arraybuffer/index.html
blob: 118b3d2801ae10bf73f68dc5b8cdbdebfe60938b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
---
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
---
<div>{{JSRef}}</div>

<p>L'oggetto <code>ArrayBuffer</code> viene utilizzato per rappresentare un buffer di lunghezza fissa di dati non elaborati. Non è possibile manipolare il contenuto di un <code>ArrayBuffer</code>, è 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.</p>

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



<h2 id="Sintassi">Sintassi</h2>

<pre class="syntaxbox">new ArrayBuffer(length)
</pre>

<h3 id="Parametri">Parametri</h3>

<dl>
 <dt><code>length</code></dt>
 <dd>La dimensione, in bytes, dell'array buffer da creare.</dd>
</dl>

<h3 id="Valori_di_ritorno">Valori di ritorno</h3>

<p>Un nuovo oggetto di tipo <code>ArrayBuffer</code> della dimensione specificata. Il suo contenuto è inzializzato a 0.</p>

<h3 id="Eccezioni">Eccezioni</h3>

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

<h2 id="Descrizione">Descrizione</h2>

<p>Il costruttore <code>ArrayBuffer</code> crea un nuovo <code>ArrayBuffer</code> di lunghezza specificata in bytes.</p>

<h3 id="Ottenere_un_array_buffer_da_dati_pre-esistenti">Ottenere un array buffer da dati pre-esistenti</h3>

<ul>
 <li><a href="/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Appendix.3A_Decode_a_Base64_string_to_Uint8Array_or_ArrayBuffer">Da una stringa in Base64</a></li>
 <li><a href="/en-US/docs/Web/API/FileReader#readAsArrayBuffer()">Da un file locale</a></li>
</ul>

<h2 id="Proprietà">Proprietà</h2>

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

<h2 id="Metodi">Metodi</h2>

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

<h2 id="Istanze">Istanze</h2>

<p>Tutte le istanze di ArrayBuffer ereditano da {{jsxref("ArrayBuffer.prototype")}}.</p>

<h3 id="Proprietà_2">Proprietà</h3>

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

<h3 id="Metodi_2">Metodi</h3>

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

<dl>
 <dt>{{jsxref("ArrayBuffer.slice()")}} {{non-standard_inline}}</dt>
 <dd>Esegue le stesse operazioni di {{jsxref("ArrayBuffer.prototype.slice()")}}.</dd>
</dl>

<h2 id="Esempio">Esempio</h2>

<p>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</p>

<pre class="brush: js">var buffer = new ArrayBuffer(8);
var view   = new Int32Array(buffer);</pre>

<h2 id="Specifiche">Specifiche</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
  <tr>
   <td>{{SpecName('Typed Array')}}</td>
   <td>{{Spec2('Typed Array')}}</td>
   <td>Sostituito da ECMAScript 6.</td>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-arraybuffer-constructor', 'ArrayBuffer')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td>
    <p>Definizione iniziale con standard ECMA. Specifica che <code>new</code> è richiesto.</p>
   </td>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-arraybuffer-constructor', 'ArrayBuffer')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td> </td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility">Browser compatibility</h2>



<p>{{Compat("javascript.builtins.ArrayBuffer")}}</p>

<h2 id="Note_sulla_compatibilità">Note sulla compatibilità</h2>

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

<pre class="brush: js example-bad">var dv = ArrayBuffer(10);
// TypeError: inizializzaree un ArrayBuffer senza il costruttore new
// genererà un errore
</pre>

<pre class="brush: js example-good">var dv = new ArrayBuffer(10);</pre>

<h2 id="Leggi_anche">Leggi anche</h2>

<ul>
 <li><a href="/en-US/docs/Web/JavaScript/Typed_arrays">JavaScript typed arrays</a></li>
 <li>{{jsxref("SharedArrayBuffer")}}</li>
</ul>