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 changerconst: pour une variable qui ne change jamais (une constante)
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.14boolean: vrai ou faux :true,falsenull: « 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 changeconst— for a variable that never changes (a constant)
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.14boolean— true or false:true,falsenull— "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.
🎯 Pratique
S'entraîner (clique pour ouvrir) :
✨ Prompt 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
Sans relire la réponse de l'IA : avec tes mots, quand choisis-tu let plutôt que const ?
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.L'IA a utilisé const pour une variable qui change ensuite. Remplacez const par let pour corriger l'erreur.
⚖️ Juge 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;
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
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.let et const ?typeof 42 ?nom d'un objet personne ?["a","b","c"].length ?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 →