JavaScript - L'objet TypedArray
Salut à toi, future vedette du codage ! ? Aujourd'hui, nous allons entreprendre un voyage passionnant à travers le monde des TypedArrays en JavaScript. Ne t'inquiète pas si tu es nouveau dans le monde de la programmation - je serai ton guide amical, et nous avancerons pas à pas. Alors, prends ta boisson favorite, installe-toi confortablement, et plongeons dedans !
Qu'est-ce qu'un TypedArray ?
Imagines que tu organises une grande fête (qui n'aime pas une bonne fête, hein ?). Tu dois garder une trace du nombre de verres, de plats et d'ustensiles que tu as. C'est un peu ce que fait un TypedArray en JavaScript - il nous aide à organiser et à stocker efficacement des types de données spécifiques.
Un TypedArray est un type spécial de tableau en JavaScript qui ne peut contenir que des nombres d'un type spécifique. C'est comme avoir des boîtes séparées pour tes fourchettes, cuillères et couteaux au lieu de les jeter tous dans un grand tiroir.
// Création d'un TypedArray de целых чисел 8 bits
const monTableau = new Int8Array(5);
console.log(monTableau); // Sortie : Int8Array(5) [0, 0, 0, 0, 0]
Dans cet exemple, nous avons créé un TypedArray qui peut contenir cinq entiers 8 bits. C'est comme préparer cinq petites boîtes, chacune pouvant contenir un nombre entre -128 et 127.
Pourquoi utiliser un TypedArray ?
Tu te demandes peut-être : "Pourquoi se soucier des TypedArrays alors que nous avons des tableaux réguliers ?" Excellent pregunta ! Les TypedArrays ont quelques superpuissances qui les rendent parfaits pour certaines situations :
- Vitesse : Ils sont plus rapides pour les opérations numériques.
- Effet mémoire : Ils utilisent une quantité fixe de mémoire.
- Compatibilité : Ils s'entendent bien avec les données binaires et d'autres langages.
C'est comme utiliser un outil spécialisé au lieu d'un couteau suisse - parfois, tu as besoin de ce ajustement parfait !
Objets TypedArray
JavaScript offre divers types de TypedArrays, chacun conçu pour des types de nombres et des tailles différents. Jetons un coup d'œil à eux dans un joli tableau bien organisé :
TypedArray | Description | Plage |
---|---|---|
Int8Array | Entier signé 8 bits | -128 à 127 |
Uint8Array | Entier non signé 8 bits | 0 à 255 |
Int16Array | Entier signé 16 bits | -32,768 à 32,767 |
Uint16Array | Entier non signé 16 bits | 0 à 65,535 |
Int32Array | Entier signé 32 bits | -2,147,483,648 à 2,147,483,647 |
Uint32Array | Entier non signé 32 bits | 0 à 4,294,967,295 |
Float32Array | Nombre à virgule flottante 32 bits | ~1.2E-38 à ~3.4E+38 |
Float64Array | Nombre à virgule flottante 64 bits | ~5.0E-324 à ~1.8E+308 |
Whaou, c'est une liste impressionnante ! Ne t'inquiète pas si c'est accablant - nous utiliserons des exemples pour clarifier tout cela.
Propriétés des TypedArrays
Les TypedArrays possèdent quelques propriétés pratiques. Explorons-les :
1. length
Cette propriété nous indique combien d'éléments sont dans notre TypedArray.
const monTableau = new Int16Array(3);
console.log(monTableau.length); // Sortie : 3
2. BYTES_PER_ELEMENT
Cette propriété nous indique combien d'octets chaque élément dans le tableau occupe.
console.log(Int8Array.BYTES_PER_ELEMENT); // Sortie : 1
console.log(Int16Array.BYTES_PER_ELEMENT); // Sortie : 2
C'est comme savoir combien de place chaque boîte occupe dans notre système de stockage !
Méthodes statiques des TypedArrays
Les TypedArrays possèdent quelques méthodes intégrées que nous pouvons utiliser sans créer une instance. Jetons un coup d'œil à deux d'entre elles :
1. TypedArray.from()
Cette méthode crée un nouveau TypedArray à partir d'un objet similaire à un tableau.
const tableauRegulier = [1, 2, 3, 4];
const tableauTypé = Int8Array.from(tableauRegulier);
console.log(tableauTypé); // Sortie : Int8Array(4) [1, 2, 3, 4]
C'est comme convertir notre tiroir à outils mélangés en boîtes organisées !
2. TypedArray.of()
Cette méthode crée un nouveau TypedArray avec un nombre variable d'arguments.
const monTableau = Int16Array.of(1, 2, 3, 4, 5);
console.log(monTableau); // Sortie : Int16Array(5) [1, 2, 3, 4, 5]
C'est comme dire : "Voici les éléments, organize-les pour moi !"
Méthodes d'instance des TypedArrays
Maintenant, examinons quelques méthodes que nous pouvons utiliser sur nos instances de TypedArray :
1. set()
Cette méthode nous permet de copier des valeurs dans notre TypedArray.
const monTableau = new Int8Array(5);
monTableau.set([1, 2, 3]);
console.log(monTableau); // Sortie : Int8Array(5) [1, 2, 3, 0, 0]
C'est comme mettre des éléments dans nos boîtes organisées.
2. subarray()
Cette méthode renvoie un nouveau TypedArray qui est une portion de l'original.
const tableauOriginal = new Int8Array([1, 2, 3, 4, 5]);
const sousTableau = tableauOriginal.subarray(1, 4);
console.log(sousTableau); // Sortie : Int8Array(3) [2, 3, 4]
C'est comme prendre quelques boîtes de notre système de stockage pour une tâche spécifique.
Exemples
Mettons tout ce savoir ensemble avec quelques exemples pratiques !
Exemple 1 : Créer et modifier un TypedArray
// Créer un TypedArray d'entiers non signés 8 bits
const donnéesPixel = new Uint8Array(4);
// Définir les valeurs RVBA pour un pixel (Rouge : 255, Vert : 128, Bleu : 64, Alpha : 255)
donnéesPixel[0] = 255; // Rouge
donnéesPixel[1] = 128; // Vert
donnéesPixel[2] = 64; // Bleu
donnéesPixel[3] = 255; // Alpha (complètement opaque)
console.log(donnéesPixel); // Sortie : Uint8Array(4) [255, 128, 64, 255]
Dans cet exemple, nous utilisons un Uint8Array pour représenter les valeurs de couleur d'un pixel. Chaque valeur est comprise entre 0 et 255, parfait pour des entiers non signés 8 bits !
Exemple 2 : Utiliser les TypedArrays pour la performance
const taille = 1000000;
// Utiliser un tableau régulier
console.time('Tableau régulier');
const tableauRegulier = new Array(taille);
for (let i = 0; i < taille; i++) {
tableauRegulier[i] = i;
}
console.timeEnd('Tableau régulier');
// Utiliser un TypedArray
console.time('TypedArray');
const tableauTypé = new Int32Array(taille);
for (let i = 0; i < taille; i++) {
tableauTypé[i] = i;
}
console.timeEnd('TypedArray');
Exécute ce code, et tu verras probablement que le TypedArray est plus rapide ! C'est comme avoir un système de stockage bien organisé versus jeter tout dans un grand tas.
Et voilà, les amis ! Nous avons fait un voyage à travers le territoire des TypedArrays, de la compréhension de ce qu'ils sont à les voir en action. Souviens-toi, la pratique rend parfait, alors n'hésite pas à expérimenter avec ces concepts.
Avant de savoir, tu seras des maîtres des TypedArrays, optimisant ton code et impressionnant tes collègues développeurs. Jusqu'à la prochaine fois, bon codage ! ?????
Credits: Image by storyset