Chapitre 3 : Types de données
1. Introduction aux types de données
En JavaScript, chaque valeur a un type qui détermine quel genre de données elle représente et quelles opérations peuvent être effectuées dessus.
JavaScript possède 7 types primitifs et des objets.
2. Les types primitifs
String (Chaîne de caractères)
Représente du texte entre guillemets simples, doubles ou backticks :
let nom = "Alice";
let prenom = 'Bob';
let message = `Bonjour ${nom}`; // Template literal
console.log(typeof nom); // "string"
Number (Nombre)
Représente les nombres entiers et décimaux :
let age = 25;
let prix = 19.99;
let negatif = -10;
console.log(typeof age); // "number"
Boolean (Booléen)
Représente une valeur vraie ou fausse :
let estMajeur = true;
let estConnecte = false;
console.log(typeof estMajeur); // "boolean"
Undefined
Variable déclarée mais non initialisée :
let x;
console.log(x); // undefined
console.log(typeof x); // "undefined"
Null
Représente une absence intentionnelle de valeur :
let utilisateur = null;
console.log(utilisateur); // null
console.log(typeof utilisateur); // "object" (bug historique de JS)
Symbol
Crée des identifiants uniques (avancé) :
let id = Symbol("id");
console.log(typeof id); // "symbol"
BigInt
Pour les très grands nombres :
let bigNumber = 1234567890123456789012345678901234567890n;
console.log(typeof bigNumber); // "bigint"
3. Les objets et tableaux
Object (Objet)
Collection de paires clé-valeur :
let personne = {
nom: "Dupont",
age: 30,
ville: "Paris"
};
console.log(personne.nom); // "Dupont"
console.log(typeof personne); // "object"
Array (Tableau)
Liste ordonnée de valeurs :
let fruits = ["pomme", "banane", "orange"];
console.log(fruits[0]); // "pomme"
console.log(fruits.length); // 3
console.log(typeof fruits); // "object"
console.log(Array.isArray(fruits)); // true
4. L'opérateur typeof
Permet de connaître le type d'une valeur :
console.log(typeof "Hello"); // "string"
console.log(typeof 42); // "number"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object" (bug!)
console.log(typeof {}); // "object"
console.log(typeof []); // "object"
console.log(typeof function(){}); // "function"
5. Conversion de types
Conversion en String
let num = 123;
let str = String(num); // "123"
let str2 = num.toString(); // "123"
let str3 = "" + num; // "123" (conversion implicite)
Conversion en Number
let str = "456";
let num = Number(str); // 456
let num2 = parseInt(str); // 456
let num3 = parseFloat("3.14"); // 3.14
let num4 = +"789"; // 789 (conversion implicite)
Conversion en Boolean
console.log(Boolean(1)); // true
console.log(Boolean(0)); // false
console.log(Boolean("hello")); // true
console.log(Boolean("")); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined));// false
false :
0, "", null, undefined, NaN, false
6. Comparaisons et égalité
Égalité stricte (===)
Compare valeur ET type :
console.log(5 === 5); // true
console.log(5 === "5"); // false (types différents)
console.log(true === 1); // false
Égalité faible (==)
Compare valeur avec conversion de type :
console.log(5 == "5"); // true (conversion)
console.log(true == 1); // true
console.log(null == undefined); // true
=== et !== pour éviter les conversions implicites.
7. Valeurs spéciales
NaN (Not a Number)
let resultat = "abc" / 2;
console.log(resultat); // NaN
console.log(typeof resultat); // "number"
console.log(isNaN(resultat)); // true
Infinity
console.log(1 / 0); // Infinity
console.log(-1 / 0); // -Infinity
console.log(typeof Infinity); // "number"
8. Exercice pratique
Créez un script qui teste différents types de données :
// Déclarez des variables de différents types
let nom = "Alice";
let age = 25;
let estEtudiant = true;
let adresse = null;
let telephone;
let hobbies = ["lecture", "sport", "musique"];
let personne = {
prenom: "Bob",
age: 30
};
// Affichez le type de chaque variable
console.log("Type de nom:", typeof nom);
console.log("Type de age:", typeof age);
console.log("Type de estEtudiant:", typeof estEtudiant);
console.log("Type de adresse:", typeof adresse);
console.log("Type de telephone:", typeof telephone);
console.log("Type de hobbies:", typeof hobbies);
console.log("hobbies est un tableau?", Array.isArray(hobbies));
console.log("Type de personne:", typeof personne);
// Testez des conversions
console.log("'123' + 456 =", "123" + 456); // "123456" (concaténation)
console.log("'123' - 456 =", "123" - 456); // -333 (conversion)
console.log("Boolean('') =", Boolean("")); // false
console.log("Boolean('hello') =", Boolean("hello")); // true
Conclusion
Vous connaissez maintenant les différents types de données en JavaScript ! Dans le prochain chapitre, nous allons apprendre les structures de contrôle (if, else, boucles).