Types de données
Primitifs vs Références & Coercition
JavaScript possède 8 types de données. Cliquez sur une carte pour voir un exemple.
🧠 Mémoire : Stack vs Heap (La Pile vs Le Tas)
Pour bien comprendre le JavaScript, il faut visualiser comment il stocke les données. On utilise une analogie simple : Le Post-it vs Le Carton de Déménagement.
🥞 Stack (La Pile)
Pour les Primitifs (Number, String...)
- Analogie : Une pile de Post-its sur votre bureau.
- Caractéristiques : Rapide, Ordonné, Taille fixe.
- Vous écrivez la valeur directement dessus.
- Exemple :
let age = 25;
📦 Heap (Le Tas)
Pour les Objets (Object, Array, Function)
- Analogie : Un entrepôt géant en désordre.
- Caractéristiques : Plus lent, Non-ordonné, Taille dynamique.
- Vous avez juste l'adresse de l'étagère sur votre Post-it (Stack).
- Exemple :
let user = { id: 1 };
⚡ Démo Interactive : Copie de variables
Quand vous copiez un objet (let user2 = user1), vous copiez seulement le
Post-it avec l'adresse (@0x1A4).
Les deux variables pointent vers le MÊME carton dans l'entrepôt. Si
user2 change le contenu, user1 voit le changement !
🐛 Les Bizarreries du `sizeof` (typeof)
typeof "Hello" // "string"
typeof 42 // "number"
typeof NaN // "number" (🤔 Not a Number est un type number...)
typeof undefined // "undefined"
typeof null // "object" (🤬 BUG HISTORIQUE, ne sera jamais corrigé)
typeof [] // "object" (Tout est objet en JS)
typeof (() => {}) // "function" (Objet appelable)
⚡ Coercition Implicite
JS essaie d'être "gentil" et convertit les types automatiquement. Cela crée des monstres.
=== et faites des conversions explicites (Number(),
String()).