Les variables : let et const
Une variable est un nom donné à une valeur. Après let score = 10, le mot score représente 10 jusqu'à ce que tu lui donnes autre chose.
Nommer une valeur pour la réutiliser
Jusqu'ici, chaque valeur était tapée directement dans console.log puis oubliée. Les vrais programmes doivent se souvenir de choses : le score du joueur, les articles d'un panier, le nom que quelqu'un a saisi. Une variable est une boîte nommée qui contient une valeur. Tu la crées une fois, puis tu utilises son nom partout où tu as besoin de la valeur.
let score = 10;
console.log(score); // affiche 10
console.log(score + 5); // affiche 15La ligne let score = 10; fait deux choses. Le mot-clé let déclare une nouvelle variable appelée score, et = 10 y range la valeur 10. Ici, le signe égal ne veut pas dire « est égal à » comme en mathématiques. Il veut dire « range la valeur de droite dans le nom de gauche ». Les programmeurs appellent cela une affectation. Quand score apparaît plus tard sans guillemets, JavaScript va chercher la boîte et utilise la valeur qu'elle contient.
Changer une valeur avec let
Une variable déclarée avec let peut recevoir une nouvelle valeur plus tard. Tu écris le nom, un signe égal et la nouvelle valeur, cette fois sans let, car la variable existe déjà :
let score = 10;
score = 25;
console.log(score); // affiche 25
score = score + 5;
console.log(score); // affiche 30La ligne score = score + 5; paraît impossible en mathématiques, mais lue comme une instruction, elle a du sens. JavaScript évalue d'abord le côté droit, le score actuel plus 5, soit 30. Puis il range 30 dans score. L'ancienne valeur disparaît. Ce motif, lire une variable puis y ranger une valeur mise à jour, est la façon dont les programmes comptent, additionnent des totaux et suivent tout ce qui change.
const pour les valeurs qui ne bougent pas
Le mot-clé const déclare aussi une variable, mais elle doit recevoir une valeur tout de suite et ne peut jamais en recevoir une nouvelle. Essayer de le faire arrête le programme avec TypeError: Assignment to constant variable. Cette erreur est utile. Si une valeur n'est pas censée changer, comme le nombre de jours dans une semaine ou un taux de taxe, la déclarer avec const empêche une erreur ailleurs dans le programme de l'écraser en silence.
const daysInWeek = 7;
console.log(daysInWeek * 4); // affiche 28
// daysInWeek = 8; arrêterait le programme avec une TypeErrorUne bonne habitude, recommandée par de nombreux guides de style, consiste à utiliser const par défaut et à ne passer à let que lorsque tu sais que la valeur va changer. Tu verras peut-être aussi l'ancien mot-clé var dans du code sur le web. Il fonctionne encore, mais il suit des règles plus lâches qui provoquent des bugs surprenants : ce cours n'utilise donc que let et const.
Les règles pour les noms
Un nom de variable peut contenir des lettres, des chiffres, le tiret bas _ et le signe dollar $, mais il ne peut pas commencer par un chiffre ni contenir d'espaces. total2 convient donc, mais pas 2total. Les noms sont sensibles à la casse : score et Score sont deux variables différentes. Quelques mots comme let, const, if et for sont réservés par le langage et ne peuvent pas servir de noms. Quand un nom se compose de plusieurs mots, les programmeurs JavaScript l'écrivent en général en camelCase : le premier mot en minuscules et chaque mot suivant avec une majuscule, comme totalPrice ou daysInWeek. Choisis des noms qui disent ce que signifie la valeur ; price en apprend bien plus à un lecteur que x.
Déclarée mais vide, et utilisée trop tôt
Si tu écris let answer; sans valeur, la variable existe mais contient undefined jusqu'à ce que tu lui affectes quelque chose. Utiliser une variable let ou const sur une ligne située au-dessus de sa déclaration est une erreur : ReferenceError: Cannot access 'answer' before initialization. Utiliser un nom qui n'a jamais été déclaré donne ReferenceError: answer is not defined. En pratique, les deux messages disent la même chose : vérifie l'orthographe et vérifie que la déclaration vient en premier.
let nom = valeur; peut changer plus tard. const nom = valeur; ne change jamais.
| variable | Un nom qui contient une valeur |
| déclarer | Créer une variable avec let ou const |
| affectation | Ranger une valeur avec = |
| let | Déclare une variable dont la valeur peut changer |
| const | Déclare une variable qui ne peut pas être réaffectée |
| camelCase | totalPrice : les mots suivants commencent par une majuscule |
| undefined | Ce que contient une variable déclarée avant de recevoir une valeur |
| mot réservé | Un mot comme let ou if qui ne peut pas servir de nom |
- Qu'affiche ce code ?
let x = 4; x = x + 3; console.log(x); - Qu'affiche ce code ?
let n = 2; n = 10; n = n * 3; console.log(n); - Qu'affiche ce code ?
let city = "Busan"; console.log("city");- Busan
- city
- undefined
- Que se passe-t-il à l'exécution ?
const max = 5; max = 6;- max devient 6
- Une erreur TypeError: Assignment to constant variable
- Rien, max reste à 5 sans rien dire
- Lequel est un nom de variable valide ?
2ndPlacesecond placesecondPlace
- Qu'affiche ce code ?
let total; console.log(typeof total); - Qu'affiche ce code ?
let a = 5; let b = a; a = 9; console.log(b); scoreetScoresont-ils la même variable ?- Oui
- Non
- Quel mot-clé faut-il utiliser pour le nombre de minutes dans une heure ?
constletvar
- Qu'affiche ce code ?
let word = "hi"; word = word + word; console.log(word);
- let nom = valeur; déclare une variable qui peut changer.
- const nom = valeur; en déclare une qui ne peut pas être réaffectée.
- = signifie ranger, pas « égal ».
- x = x + 1 lit x, ajoute 1 et range le résultat dans x.
- Noms : lettres, chiffres, _ et $, pas de chiffre au début, sensibles à la casse, en camelCase.
Sources de ce cours (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)
Consulté le: 2026-10-17