Uint8Array
==========

Le tableau typé **`Uint8Array`** représente un tableau d'entiers non signés, représentés sur 8 bits. Les éléments du tableau sont initialisés à `0`. Une fois que le tableau est construit, on peut manipuler ses différents éléments grâce aux méthodes de l'objet ou grâce à la notation usuelle (avec les crochets).

Constructeur
------------

`Uint8Array()`

Crée un nouvel objet `Uint8Array`.

Propriétés statiques
--------------------

`Uint8Array.BYTES_PER_ELEMENT`

Cette propriété renvoie la taille d'un élément du tableau, en octets. En l'occurrence, pour `Uint8Array` ce sera `1`.

`Uint8Array.name`

Cette propriété renvoie la chaîne de caractères correspondant au nom du constructeur. Pour `Uint8Array` ce sera : "`Uint8Array`".

Méthodes statiques
------------------

`Uint8Array.from()`

Cette méthode permet de créer un nouvel objet `Uint8Array` à partir d'un itérable ou d'un objet semblable à un tableau. Voir aussi `Array.from()`.

`Uint8Array.of()`

Cette méthode permet de créer un nouvel objet `Uint8Array` à partir d'un nombre variable d'arguments. Voir aussi `Array.of()`.

Propriétés des instances
------------------------

`Uint8Array.prototype.buffer`

Cette propriété renvoie l'objet `ArrayBuffer` référencé par l'objet `Uint8Array`. Elle est déterminée lors de la construction et est accessible uniquement en **lecture seule**.

`Uint8Array.prototype.byteLength`

Cette propriété renvoie la longueur, exprimée en octets, de l'objet `Uint8Array` à partir du début de l'objet `ArrayBuffer` correspondant. Elle est déterminée lors de la construction et est accessible uniquement en **lecture seule**.

`Uint8Array.prototype.byteOffset`

Cette propriété renvoie le décalage, en nombre d'octets, entre le début du tableau typé courant et du début du `ArrayBuffer` correspondant. Elle est déterminée lors de la construction et est accessible uniquement en **lecture seule**.

`Uint8Array.prototype.length`

Cette propriété renvoie le nombre d'éléments contenus dans le tableau `Uint8Array`. Elle est déterminée lors de la construction et est accessible uniquement en **lecture seule**.

Méthodes des instances
----------------------

`Uint8Array.prototype.copyWithin()`

Copie une suite d'éléments d'un tableau dans le tableau. Voir également `Array.prototype.copyWithin()`.

`Uint8Array.prototype.entries()`

Renvoie un nouvel *itérateur de tableau* qui contient les paires clé/valeur pour chaque indice du tableau. Voir également `Array.prototype.entries()`.

`Uint8Array.prototype.every()`

Teste si l'ensemble des éléments du tableau remplissent une certaine condition donnée par une fonction de test. Voir également `Array.prototype.every()`.

`Uint8Array.prototype.fill()`

Remplit les éléments d'un tableau avec une certaine valeur pour les éléments compris entre un indice de début et un indice de fin. Voir également `Array.prototype.fill()`.

`Uint8Array.prototype.filter()`

Crée un nouveau tableau dont tous les éléments proviennent de ce tableau et respectent une condition fournie par une fonction de test. Voir également `Array.prototype.filter()`.

`Uint8Array.prototype.find()`

Renvoie une valeur trouvée dans le tableau s'il existe un élément du tableau qui satisfait une condition fournie par une fonction de test, s'il n'y a pas de tel élément `undefined` sera renvoyé. Voir également `Array.prototype.find()`.

`Uint8Array.prototype.findIndex()`

Renvoie l'indice d'un élément qui satisfait une condition fournie par une fonction de test, si aucun élément ne remplit la condition `-1` sera renvoyé. Voir également `Array.prototype.findIndex()`.

`Uint8Array.prototype.forEach()`

Appelle une fonction pour chacun des éléments du tableau. Voir également `Array.prototype.forEach()`.

`Uint8Array.prototype.includes()`

Détermine si le tableau typé contient un élément donné. Cette méthode renvoie `true` ou `false` selon le cas de figure. Voir également `Array.prototype.includes()`.

`Uint8Array.prototype.indexOf()`

Renvoie le premier indice (le plus petit) d'un élément du tableau qui est égal à la valeur fournie. Si aucun élément ne correspond, la valeur `-1` sera renvoyée. Voir également `Array.prototype.indexOf()`.

`Uint8Array.prototype.join()`

Fusionne l'ensemble des éléments du tableau en une chaîne de caractères. Voir également `Array.prototype.join()`.

`Uint8Array.prototype.keys()`

Renvoie un nouvel *itérateur de tableau* qui contient les clés de chaque indice du tableau. Voir également `Array.prototype.keys()`.

`Uint8Array.prototype.lastIndexOf()`

Renvoie le dernier indice (le plus élevé) d'un élément du tableau qui est égal à la valeur fournie. Si aucun élément ne correspond, la valeur `-1` sera renvoyée. Voir également `Array.prototype.lastIndexOf()`.

`Uint8Array.prototype.map()`

Crée un nouveau tableau dont les éléments sont les images des éléments du tableau courant par une fonction donnée. Voir également `Array.prototype.map()`.

`Uint8Array.prototype.reduce()`

Applique une fonction sur un accumulateur et chaque élément du tableau (de gauche à droite) afin de réduire le tableau en une seule valeur. Voir également `Array.prototype.reduce()`.

`Uint8Array.prototype.reduceRight()`

Applique une fonction sur un accumulateur et chaque élément du tableau (de droite à gauche) afin de réduire le tableau en une seule valeur. Voir également `Array.prototype.reduceRight()`.

`Uint8Array.prototype.reverse()`

Inverse l'ordre des éléments d'un tableau. Le premier élément du tableau devient le dernier et le dernier devient le premier (et ainsi de suite). Voir également `Array.prototype.reverse()`.

`Uint8Array.prototype.set()`

Enregistre plusieurs valeurs dans le tableau typé à partir des valeurs d'un autre tableau.

`Uint8Array.prototype.slice()`

Extrait un fragment d'un tableau et renvoie ce fragment. Voir également `Array.prototype.slice()`.

`Uint8Array.prototype.some()`

Renvoie `true` si au moins un des éléments remplit une condition donnée par une fonction de test. Voir également `Array.prototype.some()`.

`Uint8Array.prototype.sort()`

Trie les éléments du tableau et renvoie ce tableau. Voir également `Array.prototype.sort()`.

`Uint8Array.prototype.subarray()`

Renvoie un nouvel objet `Uint8Array` qui est le fragment du tableau courant, entre les indices de début et de fin donnés.

`Uint8Array.prototype.values()`

Renvoie un nouvel *itérateur de tableau* qui contient les valeurs correspondantes à chaque indice du tableau. Voir également `Array.prototype.values()`.

`Uint8Array.prototype.toLocaleString()`

Renvoie une chaîne de caractères localisée qui représente le tableau et ses éléments. Voir également `Array.prototype.toLocaleString()`.

`Uint8Array.prototype.toString()`

Renvoie une chaîne de caractères qui représente le tableau et ses éléments. Voir également `Array.prototype.toString()`.

`Uint8Array.prototype[@@iterator]()`

Renvoie un nouvel *itérateur de tableau* qui contient les valeurs correspondantes à chaque indice du tableau.

Exemples
--------

### Différentes façons de construire un objet `Uint8Array`


```js
// Construction à partir d'une longueur
let uint8 = new Uint8Array(2);
uint8[0] = 42;
console.log(uint8[0]); // 42
console.log(uint8.length); // 2
console.log(uint8.BYTES\_PER\_ELEMENT); // 1

// Construction à partir d'un tableau
let arr = new Uint8Array([21, 31]);
console.log(arr[1]); // 31

// Construction à partir d'un tableau typé
let x = new Uint8Array([21, 31]);
let y = new Uint8Array(x);
console.log(y[0]); // 21

// Construction à partir d'un ArrayBuffer
let buffer = new ArrayBuffer(8);
let z = new Uint8Array(buffer, 1, 4);

// Construction à partir d'un itérable
let iterable = (function\* () {
  yield\* [1, 2, 3];
})();
let uint8 = new Uint8Array(iterable);
// Uint8Array[1, 2, 3]
```

Spécifications
--------------

| Specification |
| --- |
| ECMAScript Language Specification # table-49 |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Une prothèse d'émulation (*polyfill*) pour `Uint8ClampedArray` avec `core-js`
* Les tableaux typés en JavaScript
* `ArrayBuffer`
* `DataView`