TypeError: invalid arguments
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]