diff options
| author | Florian Dieminger <me@fiji-flo.de> | 2021-02-11 18:22:05 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-11 18:22:05 +0100 |
| commit | 36dd1801df270db5af29576e3ba0c071933e6cca (patch) | |
| tree | ef4b939a505e2ebd47d22c475db7316f524bfe0d /files/fr/web/javascript/reference/errors/invalid_array_length | |
| parent | f3460d511f9c648ecfe89f81187ff69ab68fc4a3 (diff) | |
| parent | 7766d67593cf81cc5d15a77b6dcad98d1b98f6aa (diff) | |
| download | translated-content-36dd1801df270db5af29576e3ba0c071933e6cca.tar.gz translated-content-36dd1801df270db5af29576e3ba0c071933e6cca.tar.bz2 translated-content-36dd1801df270db5af29576e3ba0c071933e6cca.zip | |
Merge pull request #31 from fiji-flo/unslugging-fr
Unslugging fr
Diffstat (limited to 'files/fr/web/javascript/reference/errors/invalid_array_length')
| -rw-r--r-- | files/fr/web/javascript/reference/errors/invalid_array_length/index.html | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/files/fr/web/javascript/reference/errors/invalid_array_length/index.html b/files/fr/web/javascript/reference/errors/invalid_array_length/index.html new file mode 100644 index 0000000000..b83edce57a --- /dev/null +++ b/files/fr/web/javascript/reference/errors/invalid_array_length/index.html @@ -0,0 +1,80 @@ +--- +title: 'RangeError: invalid array length' +slug: Web/JavaScript/Reference/Errors/Invalid_array_length +tags: + - Erreurs + - JavaScript + - RangeError +translation_of: Web/JavaScript/Reference/Errors/Invalid_array_length +original_slug: Web/JavaScript/Reference/Erreurs/Invalid_array_length +--- +<div>{{jsSidebar("Erreurs")}}</div> + +<h2 id="Message">Message</h2> + +<pre class="syntaxbox">RangeError: Array length must be a finite positive integer (Edge) +RangeError: invalid array length (Firefox) +RangeError: Invalid array length (Chrome) +RangeError: Invalid array buffer length (Chrome) +</pre> + +<h2 id="Type_d'erreur">Type d'erreur</h2> + +<p>{{jsxref("RangeError")}}</p> + +<h2 id="Quel_est_le_problème">Quel est le problème ?</h2> + +<p>Deux cas de figures peuvent causer cette erreur :</p> + +<ul> + <li>La création d'un tableau {{jsxref("Array")}} ou {{jsxref("ArrayBuffer")}} dont la longueur est négative ou supérieure ou égale à 2<sup>32</sup></li> + <li>La modification de la propriété {{jsxref("Array.length")}} pour que celle-ci ait une valeur négative ou supérieure ou égale à 2<sup>32</sup>.</li> +</ul> + +<p>Les tailles des objets <code>Array</code> et <code>ArrayBuffer</code> sont limitées car leurs longueurs (<code>length</code>) sont représentées par des entiers non-signés sur 32 bits. Ces valeurs sont donc nécessairement comprises dans l'intervalle allant de 0 à 2<sup>32</sup>-1.</p> + +<p>Si vous utilisez le constructeur pour <code>Array</code>, il est probable que vous souhaitiez utiliser la notation littérale plutôt que le constructeur. En effet, le premier argument de ce constructeur correspond à la longueur du tableau.</p> + +<p>Sinon, vous pouvez réduire la longueur utilisée afin que celle-ci soit dans l'intervalle valide avant de l'utiliser pour une telle création ou modification.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemples_invalides">Exemples invalides</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; // set -1 to the length property + +let b = new Array(Math.pow(2, 32) - 1); +b.length = b.length + 1; // set 2^32 to the length property +</pre> + +<h3 id="Exemples_valides">Exemples valides</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 est la notation hexadécimale +// pour 2^32 - 1 +// ce qu'on peut également écrire (-1 >>> 0) +</pre> + +<h2 id="Voir_aussi">Voir aussi</h2> + +<ul> + <li>{{jsxref("Array")}}</li> + <li>{{jsxref("Array.length")}}</li> + <li>{{jsxref("ArrayBuffer")}}</li> +</ul> |
