Constructeur Int8Array()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Le constructeur Int8Array()
permet de créer un nouveau tableau typé Int8Array
dont les éléments sont des nombres entiers signés en complément à deux, représentés sur 8 bits. Lors de la construction, les éléments du tableau sont initialisés avec la valeur 0
. Une fois le tableau construit, on peut faire référence aux éléments du tableau à l'aide des méthodes de l'objet ou en utilisant la notation avec les crochets et l'indice voulu.
Syntaxe
new Int8Array(); // apparu avec ES2017
new Int8Array(longueur);
new Int8Array(tableauType);
new Int8Array(object);
new Int8Array(buffer);
new Int8Array(buffer, decalageOctets);
new Int8Array(buffer, decalageOctets, longueur);
Paramètres
longueur
-
Lorsque le constructeur est appelé avec un argument
longueur
, un tableau interne de tampon de mémoire est créé avec une taille en octets delongueur
multipliée parBYTES_PER_ELEMENT
et dont les éléments sont des zéros. tableauType
-
Lorsque le constructeur est appelé avec un argument
tableauType
, qui peut être un tableau typé de n'importe quel type nonbigint
(commeInt32Array
),tableauType
est copié dans un nouveau tableau typé et chaque valeur detableauType
est convertie dans le type correspondant au constructeur avant d'être copiée dans le nouveau tableau. La longueur du nouveau tableau typé est égale à celle de l'argumenttableauType
. object
-
Lorsque le constructeur est appelé avec un argument objet quelconque, un nouveau tableau typé est créé, de la même façon qu'avec un appel à la méthode
TypedArray.from()
. buffer
,decalageOctets
,longueur
-
Lorsqu'il est appelé avec un argument
buffer
, et éventuellement des argumentsdecalageOctets
etlongueur
, le constructeur crée une nouvelle vue sous la forme d'un tableau typé qui porte sur l'objetArrayBuffer
donné par le paramètrebuffer
. Les paramètresdecalageOctets
etlongueur
indiquent l'intervalle de mémoire exposé à la vue formée par le tableau typé. Si ces deux derniers paramètres sont absents, c'est l'ensemble debuffer
qui sera vu ; si seullongueur
est absent, c'est toutbuffer
qui sera vu à partir dedecalageOctets
.
Exemples
Plusieurs façons de créer un objet Int8Array
// À partir d'une longueur
const int8 = new Int8Array(2);
int8[0] = 42;
console.log(int8[0]); // 42
console.log(int8.length); // 2
console.log(int8.BYTES_PER_ELEMENT); // 1
// À partir d'un tableau
const arr = new Int8Array([21, 31]);
console.log(arr[1]); // 31
// À partir d'un autre tableau typé
const x = new Int8Array([21, 31]);
const y = new Int8Array(x);
console.log(y[0]); // 21
// À partir d'un ArrayBuffer
const buffer = new ArrayBuffer(8);
const z = new Int8Array(buffer, 1, 4);
// À partir d'un itérable
const iterable = (function* () {
yield* [1, 2, 3];
})();
const int8 = new Int8Array(iterable);
// Int8Array[1, 2, 3]
Spécifications
Specification |
---|
ECMAScript Language Specification # sec-typedarray-constructors |
Compatibilité des navigateurs
BCD tables only load in the browser
Notes de compatibilité
À partir d'ECMAScript 2015, le constructeur de Int8Array
doit être appelé avec l'opérateur new
. Utiliser le constructeur Int8Array
comme une fonction, c'est-à-dire sans le mot-clé new
, déclenchera désormais une exception TypeError
.
const dv = Int8Array([1, 2, 3]);
// TypeError: calling a builtin Int8Array constructor
// without new is forbidden
const dv = new Int8Array([1, 2, 3]);