Leçon 2/9 8 min

Variables et types

Stockez des données avec let et const et découvrez les types JS : string, number, boolean, array et object.

let vs const

En JavaScript, on stocke des données dans des variables. Il y a deux mots-clés modernes :

  • let : pour une variable qui peut changer
  • const : pour une variable qui ne change jamais (une constante)
Prédisez avant de lire

panier est déclaré avec const : const panier = ["pomme"];. Avant de dérouler : la ligne panier.push("banane") provoque-t-elle une erreur ? Et la ligne panier = ["cerise"] ? Pourquoi cette différence ?

Voir la réponse

panier.push("banane") fonctionne sans erreur : panier vaut alors ["pomme", "banane"]. En revanche, panier = ["cerise"] lève une erreur (TypeError: Assignment to constant variable.). const interdit de réaffecter la variable (la faire pointer vers une autre valeur), mais n'empêche pas de modifier le contenu de l'objet ou du tableau vers lequel elle pointe. C'est la confusion la plus fréquente sur const : il fige le lien, pas le contenu. Pour un vrai gel du contenu : Object.freeze().

let age = 25;       // peut changer
age = 26;            // OK

const nom = "Alice"; // ne change pas
// nom = "Bob";      // ERREUR !

Règle : utilisez const par défaut. Passez à let seulement si la valeur doit changer. Oubliez var : c'est l'ancienne manière.

Les types de base

JavaScript a plusieurs types de données :

  • string : du texte entre guillemets : "Bonjour" ou 'Salut'
  • number : un nombre : 42, 3.14
  • boolean : vrai ou faux : true, false
  • null : « rien, intentionnellement »
  • undefined : « pas encore défini »

L'opérateur typeof vous dit le type d'une valeur :

typeof "Bonjour"  // "string"
typeof 42          // "number"
typeof true        // "boolean"

Strings et template literals

Trois façons d'écrire du texte :

const simple = 'Guillemets simples';
const double = "Guillemets doubles";
const template = `Bonjour ${nom}, vous avez ${age} ans`;

Les template literals (avec les backticks `) sont les plus pratiques : ils permettent d'insérer des variables avec ${...} et d'écrire sur plusieurs lignes.

Les tableaux (arrays)

Un tableau est une liste ordonnée de valeurs :

const fruits = ["pomme", "banane", "cerise"];

fruits.length;     // 3
fruits[0];         // "pomme" (le premier)
fruits.push("kiwi"); // ajoute à la fin
fruits.pop();      // retire le dernier

forEach permet de parcourir chaque élément :

fruits.forEach(function(fruit) {
  console.log(fruit);
});

Les objets

Un objet regroupe des données liées sous forme de paires clé/valeur :

const personne = {
  nom: "Alice",
  age: 25,
  ville: "Besançon"
};

personne.nom;       // "Alice" (notation point)
personne["age"];    // 25 (notation crochet)

Les objets sont partout en JavaScript. Chaque API, chaque réponse de serveur, chaque élément du DOM est un objet.

let vs const

In JavaScript, you store data in variables. There are two modern keywords:

  • let — for a variable that can change
  • const — for a variable that never changes (a constant)
Predict before reading

cart is declared with const: const cart = ["apple"];. Before you scroll: does cart.push("banana") throw an error? What about cart = ["cherry"]? Why the difference?

See the answer

cart.push("banana") works without error: cart is then ["apple", "banana"]. On the other hand, cart = ["cherry"] throws a TypeError: Assignment to constant variable.. const forbids reassigning the variable (making it point to a different value), but does not prevent mutating the contents of the object or array it points to. This is the most common misconception about const: it freezes the binding, not the content. To truly freeze the content: Object.freeze().

let age = 25;       // can change
age = 26;            // OK

const name = "Alice"; // doesn't change
// name = "Bob";      // ERROR!

Rule: use const by default. Switch to let only if the value needs to change. Forget var — that's the old way.

Basic types

JavaScript has several data types:

  • string — text in quotes: "Hello" or 'Hi'
  • number — a number: 42, 3.14
  • boolean — true or false: true, false
  • null — "nothing, intentionally"
  • undefined — "not defined yet"

The typeof operator tells you the type of a value:

typeof "Hello"  // "string"
typeof 42        // "number"
typeof true      // "boolean"

Strings and template literals

Three ways to write text:

const single = 'Single quotes';
const double = "Double quotes";
const template = `Hello ${name}, you are ${age} years old`;

Template literals (with backticks `) are the most practical: they let you insert variables with ${...} and write across multiple lines.

Arrays

An array is an ordered list of values:

const fruits = ["apple", "banana", "cherry"];

fruits.length;     // 3
fruits[0];         // "apple" (the first)
fruits.push("kiwi"); // add to the end
fruits.pop();      // remove the last

forEach lets you loop through each element:

fruits.forEach(function(fruit) {
  console.log(fruit);
});

Objects

An object groups related data as key/value pairs:

const person = {
  name: "Alice",
  age: 25,
  city: "Paris"
};

person.name;       // "Alice" (dot notation)
person["age"];     // 25 (bracket notation)

Objects are everywhere in JavaScript. Every API, every server response, every DOM element is an object.

Essayez vous-même

🎯 Pratique

S'entraîner (clique pour ouvrir) :

Prompt IA
Avec l'IA

Copiez ce prompt dans Claude ou ChatGPT :

Donne-moi 5 exemples concrets de variables JavaScript avec let et const. Pour chaque exemple, explique pourquoi tu as choisi let ou const.
💬 Ré-explique sans regarder
Ré-explique sans regarder

Sans relire la réponse de l'IA : avec tes mots, quand choisis-tu let plutôt que const ?

Une bonne explication dit : const par défaut (intention claire, pas de réassignation accidentelle) ; let seulement quand la valeur doit vraiment changer (compteur, accumulateur, valeur recalculée). Bonus : const n'empêche pas de modifier le contenu d'un objet ou tableau, seulement de réassigner la variable.
Exercice : Corrigez le code de l'IA

L'IA a utilisé const pour une variable qui change ensuite. Remplacez const par let pour corriger l'erreur.

Corrigez le code
⚖️ Juge le code de l'IA
Accepter ou rejeter le code de l'IA

L'IA te propose ce code. Ton rôle de relecteur : l'accepter tel quel ou le rejeter, et dire pourquoi.

let siteName = "Mon Portfolio";
let maxUsers = 100;
let pi = 3.14159;
À corriger plutôt qu'accepter tel quel. Ces trois valeurs ne changent jamais : const documente l'intention et empêche une réassignation accidentelle. Ce n'est pas un bug (le code tourne), mais let envoie un mauvais signal. Le réflexe pro : const par défaut, let seulement si la valeur doit changer.
🧠 Rappel libre
Rappel libre

Sans remonter dans la leçon : quelle est la différence entre let et const, et que renvoie typeof 42 ?

let déclare une variable réassignable ; const une constante qu'on ne peut pas réassigner (le contenu d'un objet ou tableau const reste, lui, modifiable). typeof 42 renvoie "number" : en JavaScript tous les nombres sont des number, il n'existe pas de type integer.
Quelle est la différence entre let et const ?
Que retourne typeof 42 ?
Comment accéder à la propriété nom d'un objet personne ?
Quel est le résultat de ["a","b","c"].length ?
Prochaine étape

Vous savez maintenant stocker des valeurs et reconnaître leurs types. Mais une donnée posée dans une variable ne fait rien toute seule : il faut du code qui agit dessus. Place aux fonctions, ces petites machines réutilisables qui prennent des valeurs en entrée et renvoient un résultat.

Leçon 3 : Les fonctions →

Une erreur dans cette leçon, un passage flou, une question ? Écrivez-moi : chaque retour améliore ce cours.

Besoin d'un développeur pour votre projet ?

Réponse sous 24h · Sans engagement