Message
TypeError: invalid arguments (Firefox)
Type d'erreur
Quel est le problème ?
Les constructeurs de tableaux typés ont besoin :
- d'une longueur,
- d'un autre tableau typé,
- d'un objet semblable à un tableau,
- d'un objet itérable
- ou d'un objet
ArrayBuffer
afin de créer un nouveau tableau typé. Si on utilise un autre argument, on ne pourra pas créer de tableau typé valide.
Exemples
Il est par exemple impossible de construire un tableau typé Uint8Array
à partir d'une chaîne de caractères :
var ta = new Uint8Array("nope"); // TypeError: invalid arguments
Voici différentes façons de créer un tableau typué Uint8Array
:
// À partir d'une longueur var uint8 = new Uint8Array(2); uint8[0] = 42; console.log(uint8[0]); // 42 console.log(uint8.length); // 2 console.log(uint8.BYTES_PER_ELEMENT); // 1 // À partir d'un tableau var arr = new Uint8Array([21,31]); console.log(arr[1]); // 31 // À partir d'un autre tableau typé var x = new Uint8Array([21, 31]); var y = new Uint8Array(x); console.log(y[0]); // 21 // À partir d'un ArrayBuffer var buffer = new ArrayBuffer(8); var z = new Uint8Array(buffer, 1, 4); // À partir d'un itérable var iterable = function*(){ yield* [1,2,3]; }(); var uint8 = new Uint8Array(iterable); // Uint8Array[1, 2, 3]