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
|
---
title: ArrayBuffer
slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer
tags:
- ArrayBuffer
- Constructor
- JavaScript
- TypedArrays
translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer
---
<div>{{JSRef}}</div>
<p>Das <code><strong>ArrayBuffer</strong></code> Objekt repräsentiert einen generischen Buffer mit fester Länge. Der Inhalt eines <code>ArrayBuffer</code>s kann nicht direkt bearbeitet werden; stattdessen wird eines der <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/TypedArray">typisierten Array-Objekte</a> oder ein {{jsxref("DataView")}} Objekt verwendet, welches den Buffer in einem bestimmten Format repräsentiert und von welchem aus sein Inhalt bearbeitet werden kann.</p>
<div>{{EmbedInteractiveExample("pages/js/arraybuffer-constructor.html")}}</div>
<h2 id="Syntax">Syntax</h2>
<pre class="syntaxbox">new ArrayBuffer(length)
</pre>
<h3 id="Parameter">Parameter</h3>
<dl>
<dt>length</dt>
<dd>Die Größe, in Bytes, des zu erstellenden <code>ArrayBuffer</code>.</dd>
</dl>
<h3 id="Rückgabewert">Rückgabewert</h3>
<p>Ein neues <code>ArrayBuffer </code>Objekt der angegebenen Länge. Der Inhalt wird auf 0 initialisiert.</p>
<h3 id="Ausnahmen">Ausnahmen</h3>
<p>Ein {{jsxref("RangeError")}} wird erhoben wenn die Länge größer als {{jsxref("Number.MAX_SAFE_INTEGER")}} (>= 2 ** 53) oder negativ ist.</p>
<h2 id="Beschreibung">Beschreibung</h2>
<p>Der <code>ArrayBuffer</code> Konstruktor erstellt einen neuen <code>ArrayBuffer </code>der angegebenen Länge in Bytes.</p>
<h3 id="Einen_ArrayBuffer_von_existierenden_Daten_erstellen">Einen ArrayBuffer von existierenden Daten erstellen</h3>
<ul>
<li><a href="/de/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Appendix.3A_Decode_a_Base64_string_to_Uint8Array_or_ArrayBuffer">Von einem Base64-String</a></li>
<li><a href="/de/docs/Web/API/FileReader#readAsArrayBuffer()">Von einer lokalen Datei</a></li>
</ul>
<h2 id="Eigenschaften">Eigenschaften</h2>
<dl>
<dt><code>ArrayBuffer.length</code></dt>
<dd>Der Wert des <code>ArrayBuffer</code> Konstruktors für die Länge.</dd>
<dt>{{jsxref("ArrayBuffer.@@species", "get ArrayBuffer[@@species]")}}</dt>
<dd>Die Konstruktor-Funktion um abgeleitete Objekte zu erstellen.</dd>
<dt>{{jsxref("ArrayBuffer.prototype")}}</dt>
<dd>Erlaubt das Hinzufügen von Eigenschaften zu allen <code>ArrayBuffer </code>Objekten.</dd>
</dl>
<h2 id="Methoden">Methoden</h2>
<dl>
<dt>{{jsxref("ArrayBuffer.isView", "ArrayBuffer.isView(arg)")}}</dt>
<dd>Gibt <code>true</code> zurück wenn <code>arg</code> eines der Views des <code>ArrayBuffers </code>ist, wie zum Beispiel die <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/TypedArray">typisierten Array-Objekt</a>e oder ein {{jsxref("DataView")}}. Ansonsten wird <code>false</code> zurückgegeben.</dd>
<dt>{{jsxref("ArrayBuffer.transfer", "ArrayBuffer.transfer(oldBuffer [, newByteLength])")}} {{experimental_inline}}</dt>
<dd>
<div class="line" id="file-arraybuffer-transfer-LC6">Gibt einen neuen <code>ArrayBuffer</code> zurück, dessen Inhalt von den Daten des <code>oldBuffer</code>s genommen wird und dann entweder abgeschnitten oder mit Null auf <code>newByteLength</code> erweitert wird.</div>
</dd>
</dl>
<h2 id="Instanzen">Instanzen</h2>
<p>Alle <code>ArrayBuffer</code> Instanzen erben von {{jsxref("ArrayBuffer.prototype")}}.</p>
<h3 id="Eigenschaften_2">Eigenschaften</h3>
<p>{{page('de/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Eigenschaften')}}</p>
<h3 id="Methoden_2">Methoden</h3>
<p>{{page('de/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Methoden')}}</p>
<dl>
<dt>{{jsxref("ArrayBuffer.slice()")}} {{non-standard_inline}}</dt>
<dd>Hat die selbe Funktion wie {{jsxref("ArrayBuffer.prototype.slice()")}}.</dd>
</dl>
<h2 id="Beispiel">Beispiel</h2>
<p>In diesem Beispiel erstellen wir einen 8-byte Puffer mit einem {{jsxref("Global_Objects/Int32Array", "Int32Array")}} View, um auf den Puffer zu verweisen:</p>
<pre class="brush: js">var buffer = new ArrayBuffer(8);
var view = new Int32Array(buffer);</pre>
<h2 id="Spezifikationen">Spezifikationen</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Spezifikation</th>
<th scope="col">Status</th>
<th scope="col">Kommentar</th>
</tr>
<tr>
<td>{{SpecName('Typed Array')}}</td>
<td>{{Spec2('Typed Array')}}</td>
<td>Ersetzt durch ECMAScript 6.</td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-arraybuffer-constructor', 'ArrayBuffer')}}</td>
<td>{{Spec2('ES6')}}</td>
<td>Initiale Definition im ECMA Standard. Spezifiziert, dass <code>new</code> benötigt wird.</td>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-arraybuffer-constructor', 'ArrayBuffer')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="Browserkompatibilität">Browserkompatibilität</h2>
<p>{{Compat("javascript.builtins.ArrayBuffer")}}</p>
<h2 id="Kompatibilitätshinweis">Kompatibilitätshinweis</h2>
<p>Seit ECMAScript 2015 müssen <code>ArrayBuffer</code> Konstruktor mit einem {{jsxref("Operators/new", "new")}} Operator konstruiert werden. Einen <code>ArrayBuffer</code> Konstruktor als Funktion aufzurufen ohne <code>new</code> ab sofort einen {{jsxref("TypeError")}} erheben.</p>
<pre class="brush: js example-bad">var dv = ArrayBuffer(10);
// TypeError: Einen eingebauten ArrayBuffer-Konstruktor
// ohne new aufzurufen ist nicht erlaubt.</pre>
<pre class="brush: js example-good">var dv = new ArrayBuffer(10);</pre>
<h2 id="Siehe_auch">Siehe auch</h2>
<ul>
<li><a href="/en-US/docs/Web/JavaScript/Typed_arrays">JavaScript typed arrays</a></li>
<li>{{jsxref("SharedArrayBuffer")}}</li>
</ul>
|