Types

Les valeurs primitives

JavaScript attribue un type aux valeurs. Une même variable déclarée avec let peut recevoir des valeurs de types différents, mais cette souplesse ne dispense pas de vérifier ce qu’une fonction attend.

TypeExempleUtilisation
string'MMI'Texte
number12.5Calcul ; entiers et décimaux usuels
booleantrue ou falseCondition
undefinedundefinedValeur non fournie
nullnullAbsence choisie explicitement
bigint12nEntiers de grande taille ; pas de mélange direct avec number
symbolSymbol('id')Identifiant unique, surtout dans les API avancées

typeof et conversion des saisies

Une saisie est souvent du texte

const saisie = '12';
console.log(typeof saisie);
console.log(saisie + 3);
console.log(Number(saisie) + 3);
console.log(Number.isNaN(Number('douze')));

Sorties : string, 123, 15, true. Avec une chaîne, + peut concaténer. Number convertit ; une conversion impossible produit NaN. Number('') produit 0 : pour un champ obligatoire, vérifier le vide avant la conversion. typeof null donne historiquement object ; utilisez valeur === null pour tester cette absence.

Objets, tableaux et références

const original = { titre: 'Affiche' };
const copieDuNom = original;
copieDuNom.titre = 'Vidéo';
console.log(original.titre); // Vidéo
console.log(Array.isArray([1, 2])); // true

Les deux variables désignent le même objet. Une affectation ne crée pas une copie indépendante. Un tableau est un objet spécialisé : typeof [] renvoie object, d’où le test Array.isArray. Les copies avec { ...original } ou [...tableau] sont superficielles : les objets imbriqués restent partagés.

Comparaison stricte

12 === '12' vaut false : le type et la valeur diffèrent. == effectue des conversions implicites ; utilisez === et convertissez la saisie explicitement. Les valeurs false, 0, '', null, undefined et NaN sont fausses dans une condition. Un tableau vide et l’objet {} sont vrais : tester un tableau vide demande tableau.length === 0.