À propos de ce cours
Chapitre 9 — Les objets littéraux, JSON et les collections · Les objets littéraux : propriétés et méthodes
• créer un objet littéral et accéder à ses propriétés ;
• ajouter, modifier, supprimer et tester des propriétés ;
• écrire des méthodes et utiliser
this; • comprendre qu'un objet est manipulé par référence.
1. Regrouper des données
Un tableau range des valeurs numérotées. Pour décrire une chose qui a plusieurs caractéristiques (un stagiaire, un produit, un contact), on utilise un objet: un ensemble de propriétés, chacune formée d'une clé (un nom) et d'une valeur. L'écriture entre accolades s'appelle un objet littéral.

Figure 1 — Clés, valeurs, objet imbriqué, méthode et accès aux propriétés.
2. Créer et manipuler un objet
// 1. Créer un objet littéral : des paires clé : valeur entre accolades
const stagiaire = {
nom: "Amina Tazi",
age: 19,
groupe: "DEV101",
notes: [14, 16.5, 12],
adresse: { ville: "Casablanca", codePostal: "20250" },
"date-inscription": "2026-09-07", // clé avec un tiret : guillemets obligatoires
};
console.log(stagiaire.nom, "|", stagiaire.adresse.ville, "|", stagiaire.notes[1]);
// 2. Notation pointée ou crochets
console.log(stagiaire["date-inscription"]);
const champ = "groupe";
console.log(`stagiaire[champ] = ${stagiaire[champ]}`); // clé contenue dans une variable
console.log("Propriété absente :", stagiaire.telephone);
// 3. Ajouter, modifier, supprimer
stagiaire.email = "amina@ista.ma";
stagiaire.age = 20;
delete stagiaire["date-inscription"];
console.log("Clés :", Object.keys(stagiaire).join(", "));
// 4. Tester l'existence d'une propriété
console.log("'email' in stagiaire ?", "email" in stagiaire, "| Object.hasOwn(stagiaire, 'tel') ?", Object.hasOwn(stagiaire, "tel"));
// 5. Des méthodes : des fonctions rangées dans l'objet
const compte = {
titulaire: "Karim",
solde: 500,
deposer(montant) { // syntaxe courte des méthodes
this.solde += montant; // this = l'objet sur lequel on appelle la méthode
return this.solde;
},
resume() {
return `${this.titulaire} : ${this.solde} DH`;
},
};
compte.deposer(250);
console.log(compte.resume());
// 6. Raccourcis ES6 : propriétés abrégées et clés calculées
const nom = "Salma", note = 17, matiere = "javascript";
const fiche = { nom, note, [`note_${matiere}`]: note };
console.log(fiche);
// 7. Un objet est une référence
const copie = stagiaire;
copie.age = 99;
console.log("stagiaire.age après modification de copie :", stagiaire.age);
const a = { x: 1 }, b = { x: 1 };
console.log("{ x: 1 } === { x: 1 } ?", a === b);
// 8. Chaînage optionnel pour une propriété peut-être absente
console.log("Ville du tuteur :", stagiaire.tuteur?.adresse?.ville ?? "non renseignée");
Résultat dans la console
Amina Tazi | Casablanca | 16.5
2026-09-07
stagiaire[champ] = DEV101
Propriété absente : undefined
Clés : nom, age, groupe, notes, adresse, email
'email' in stagiaire ? true | Object.hasOwn(stagiaire, 'tel') ? false
Karim : 750 DH
{ nom: 'Salma', note: 17, note_javascript: 17 }
stagiaire.age après modification de copie : 99
{ x: 1 } === { x: 1 } ? false
Ville du tuteur : non renseignée
- Lire:
objet.cle(notation pointée), ouobjet["cle"](crochets) quand la clé contient un tiret ou un espace, ou quand elle est dans une variable. Une propriété absente vautundefined, sans erreur. - Ajouter ou modifier: une simple affectation. Supprimer:
delete objet.cle. - Tester:
"cle" in objetouObject.hasOwn(objet, "cle"). Ne testez pasobjet.cle !== undefined: une propriété peut exister et valoirundefined. - Méthodes: une fonction rangée dans l'objet. Dans une méthode,
thisdésigne l'objet sur lequel on l'appelle (compte.deposer()→this=compte). Écrivez-la avec la syntaxe courtedeposer(montant) { … }, pas avec une fonction fléchée (leçon 10.5). - Raccourcis:
{ nom, note }équivaut à{ nom: nom, note: note };[expression]: valeurcalcule le nom de la clé. - Chaînage optionnel:
stagiaire.tuteur?.adresse?.villerenvoieundefinedau lieu de provoquer une erreur si une étape manque.
3. Un objet est une référence

Figure 2 — Une affectation ne copie pas l'objet : les deux variables désignent le même.
Une variable ne contient pas l'objet lui-même mais une référence vers lui. const copie = stagiaire crée un second nom pour
le même objet : modifier copie.age modifie stagiaire.age. C'est aussi pourquoi const n'empêche pas de modifier les propriétés :
il interdit seulement de faire pointer la variable vers un autre objet. Pour une vraie copie, voir la leçon 9.4.
•
{ cle: valeur, … }; lecture par o.cle ou o["cle"]; propriété absente : undefined. • Ajouter/modifier par affectation, supprimer avec
delete, tester avec in ou Object.hasOwn. • Une méthode est une fonction de l'objet ;
this = l'objet appelant.• Les objets sont manipulés par référence : affecter n'est pas copier.
🛠 Activité 1 — La fiche produit en objet
Mission : Représentez un produit de boutique en ligne par un objet, puis faites-le évoluer.
Questions pour avancer (répondez dans votre compte rendu, puis appliquez dans votre projet) :
- Créez un objet
produitavec un nom, un prix, une quantité en stock, une liste de couleurs et un objetfournisseur(nom, ville). Comment accédez-vous à la ville du fournisseur ? À la deuxième couleur ? - Ajoutez une propriété
promotion, modifiez le prix, puis supprimez la propriétépromotion. Affichez la liste des clés après chaque étape. - Une variable
champcontient le texte"prix". Comment lisez-vous la propriété correspondante ? Pourquoiproduit.champne fonctionne-t-il pas ? - Ajoutez une méthode
vendre(quantite)qui diminue le stock et renvoie un message, ou refuse si le stock est insuffisant. Que se passe-t-il si vous l'écrivez en fonction fléchée ? - Écrivez
const produit2 = produit;puis changez le prix deproduit2. Que vaut le prix deproduit? Expliquez avec la figure 2. - Affichez
produit.remise?.tauxetproduit.remise.taux. Quelle différence ? Dans quel cas le chaînage optionnel est-il utile ?
Je vérifie / je rends :
- ☐ Le fichier et les réponses aux questions 3, 4 et 5.
Le tableau associatif en JavaScript →