diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:41:15 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:41:15 -0500 |
commit | 4b1a9203c547c019fc5398082ae19a3f3d4c3efe (patch) | |
tree | d4a40e13ceeb9f85479605110a76e7a4d5f3b56b /files/de/web/javascript/reference/fehler/invalid_array_length/index.html | |
parent | 33058f2b292b3a581333bdfb21b8f671898c5060 (diff) | |
download | translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.gz translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.bz2 translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.zip |
initial commit
Diffstat (limited to 'files/de/web/javascript/reference/fehler/invalid_array_length/index.html')
-rw-r--r-- | files/de/web/javascript/reference/fehler/invalid_array_length/index.html | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/files/de/web/javascript/reference/fehler/invalid_array_length/index.html b/files/de/web/javascript/reference/fehler/invalid_array_length/index.html new file mode 100644 index 0000000000..34edeb2969 --- /dev/null +++ b/files/de/web/javascript/reference/fehler/invalid_array_length/index.html @@ -0,0 +1,77 @@ +--- +title: 'RangeError: invalid array length' +slug: Web/JavaScript/Reference/Fehler/Invalid_array_length +tags: + - Errors + - JavaScript + - RangeError +translation_of: Web/JavaScript/Reference/Errors/Invalid_array_length +--- +<div>{{jsSidebar("Errors")}}</div> + +<h2 id="Fehlermeldung">Fehlermeldung</h2> + +<pre class="syntaxbox">RangeError: invalid array length (Firefox) +RangeError: Invalid array length (Chrome) +RangeError: Invalid array buffer length (Chrome) +</pre> + +<h2 id="Fehlertyp">Fehlertyp</h2> + +<p>{{jsxref("RangeError")}}</p> + +<h2 id="Was_ist_falsch_gelaufen">Was ist falsch gelaufen?</h2> + +<p>entweder:</p> + +<ul> + <li>ein {{jsxref("Array")}} oder ein {{jsxref("ArrayBuffer")}} wurde mit einer negativen oder einer Zahl größer gleich 2<sup>32</sup> erzeugt, oder</li> + <li>die {{jsxref("Array.length")}} Eigenschaft wurde auf eine negative oder eine Zahl größer gleich 2<sup>32</sup> gesetzt.</li> +</ul> + +<p>Warum ist die Länge von Array and <code>ArrayBuffer</code> limitiert? Die <code>length</code> Eigenschaft von <code>Array </code>und <code>ArrayBuffer </code>ist mit einem vorzeichenlosen 32-bit Integer definiert, sodass nur Werte von 0 bis 2<sup>32</sup>-1 gültig sind.</p> + +<p>Wenn man ein Array mit dem Konstruktor erzeugen möchte, statt mit der Literalnotation, sollte man aufpassem, dass das erste Argument als Länge des Arrays interpretiert wird.</p> + +<p>Man sollte die Länge festlegen, bevor man die <code>length</code> Eigenschaft setzt, oder mit dem ersten Argument im Konstruktor.</p> + +<h2 id="Beispiele">Beispiele</h2> + +<h3 id="Ungültige_Fälle">Ungültige Fälle</h3> + +<pre class="brush: js example-bad">new Array(Math.pow(2, 40)) +new Array(-1) +new ArrayBuffer(Math.pow(2, 32)) +new ArrayBuffer(-1) + +let a = []; +a.length = a.length - 1; // length Eigenschaft auf -1 gesetzt + +let b = new Array(Math.pow(2, 32) - 1); +b.length = b.length + 1; // length Eigenschaft auf 2^32 gesetzt +</pre> + +<h3 id="Gültige_Fälle">Gültige Fälle</h3> + +<pre class="brush: js example-good">[ Math.pow(2, 40) ] // [ 1099511627776 ] +[ -1 ] // [ -1 ] +new ArrayBuffer(Math.pow(2, 32) - 1) +new ArrayBuffer(0) + +let a = []; +a.length = Math.max(0, a.length - 1); + +let b = new Array(Math.pow(2, 32) - 1); +b.length = Math.min(0xffffffff, b.length + 1); + +// 0xffffffff ist die hexadecimal Notation für 2^32 - 1 +// kann auch als (-1 >>> 0) geschrieben werden +</pre> + +<h2 id="Siehe_auch">Siehe auch</h2> + +<ul> + <li>{{jsxref("Array")}}</li> + <li>{{jsxref("Array.length")}}</li> + <li>{{jsxref("ArrayBuffer")}}</li> +</ul> |