Module 2Acquérir les fondamentaux de JavaScript
Chapitre 7 sur 15
Manipuler les objets
Créer des objets et utiliser les objets natifs : tableaux, chaînes, dates, Math, window, regex et JSON.
- ≈ 145 min
- 5 leçons
- 8 vidéos
- 4 exercices
Module 2Acquérir les fondamentaux de JavaScript
Chapitre 7 sur 15
Créer des objets et utiliser les objets natifs : tableaux, chaînes, dates, Math, window, regex et JSON.
Objectifs
Avec ce chapitre, tu sauras…
Array, String, Date, Math, window ;JSON.parse() et JSON.stringify().Leçon 1
La syntaxe littérale
const telephone = {
marque: "SmartF22",
prix: 400,
stock: 200,
ref: "SmartPhone2022",
verifierStock: function () { // une méthode
return this.stock > 0; // this = l'objet telephone
},
};
console.log(telephone.marque); // SmartF22 (notation pointée)
console.log(telephone["prix"]); // 400 (notation crochets)
console.log(telephone.verifierStock()); // trueVidéo · À regarder
ENJavaScript Full Course for free
Bro Code · YouTube
Vidéo · À regarder
ENJavaScript Full Course for free
Bro Code · YouTube
Leçon 2
Leçon 3
| Méthode | Rôle | Exemple avec t = ["A", "B", "C"] | Résultat |
|---|---|---|---|
push(x) | ajoute à la fin | t.push("D") | ["A", "B", "C", "D"] |
unshift(x) | ajoute au début | t.unshift(22) | [22, "A", "B", "C"] |
pop() |
Leçon 4
| Élément | Signification | Exemple |
|---|---|---|
[abc] | un caractère parmi a, b, c | /[aeiou]/ : une voyelle |
[0-9], [a-z], [A-Z] | un caractère dans l'intervalle | /[0-9]/ : un chiffre |
\d, \w, \s | un chiffre ; une lettre, un chiffre ou _ ; un espace |
Leçon 5
| Méthode | Conversion | Nom |
|---|---|---|
JSON.parse(texte) | texte JSON → objet JavaScript | analyse syntaxique (parse) |
JSON.stringify(objet) | objet JavaScript → texte JSON | linéarisation (stringify) |
1Dans une méthode, this désigne…
2["A", "B", "C"].pop() supprime…
3"Bonjour".substring(0, 3) vaut…
4new Date(2026, 0, 1) représente…
5Math.floor(7.9) vaut…
6/^\d{5}$/.test("2000") vaut…
7JSON.parse convertit…
8Quelle écriture est du JSON valide ?
L'essentiel du chapitre
{ cle: valeur, methode() { } } ; constructeur function Nom() { this.x = x; } + new ; ou class.objet.cle ou objet["cle"] ; ajouter en affectant ; delete objet.cle ; for...in pour parcourir.length, push, pop, shift, unshift, splice, slice, indexOf, includes, sort((a, b) => a - b), join.length, toUpperCase, substring, slice, indexOf, includes, split, trim, replace.new Date(), getFullYear, getMonth (0 à 11), getDate, getDay (0 = dimanche).round, floor, ceil, max, min, random. window : alert, confirm, prompt, setTimeout, setInterval./motif/i, ^ $ \d \w [a-z] + * ? {n} ; regex.test(ch), ch.replace(regex, x).JSON.parse (texte → objet), JSON.stringify (objet → texte).t.pop() |
["A", "B"] |
shift() | supprime le premier | t.shift() | ["B", "C"] |
splice(i, n) | supprime n éléments à partir de i | t.splice(1, 1) | ["A", "C"] |
slice(i, j) | copie de i à j - 1 (sans modifier) | t.slice(0, 2) | ["A", "B"] |
sort() | trie (ordre alphabétique) | ["E", "A", "D"].sort() | ["A", "D", "E"] |
reverse() | inverse l'ordre | t.reverse() | ["C", "B", "A"] |
join(sep) | assemble en chaîne | t.join("-") | "A-B-C" |
findIndex(f) | indice du premier élément qui vérifie f | t.findIndex(e => e === "C") | 2 |
find(f) | premier élément qui vérifie f | t.find(e => e > "A") | "B" |
Vidéo · À regarder
ENJavaScript Full Course for free
Bro Code · YouTube
| Propriété / méthode | Rôle | Exemple avec s = "Cours JavaScript" | Résultat |
|---|---|---|---|
length | longueur | s.length | 16 |
charAt(i) ou s[i] | caractère à l'indice i | s.charAt(0) | "C" |
substring(x, y) | de x à y - 1 | s.substring(6, 10) | "Java" |
slice(x, y) | comme substring, accepte les négatifs | s.slice(-6) | "Script" |
toLowerCase() / toUpperCase() | minuscules / majuscules | s.toUpperCase() | "COURS JAVASCRIPT" |
indexOf(t) | position de t (-1 si absent) | s.indexOf("Java") | 6 |
includes(t) | contient t ? | s.includes("Script") | true |
startsWith(t) / endsWith(t) | commence / finit par t ? | s.startsWith("Cours") | true |
split(sep) | découpe en tableau | s.split(" ") | ["Cours", "JavaScript"] |
trim() | supprime les espaces au début et à la fin | " ok ".trim() | "ok" |
replace(a, b) | remplace la première occurrence | s.replace("Cours", "Module") | "Module JavaScript" |
Array.from(s) | transforme en tableau de caractères | Array.from("abc") | ["a", "b", "c"] |
Vidéo · À regarder
ENJavaScript Full Course for free
Bro Code · YouTube
| Méthode | Renvoie |
|---|---|
getDate() | le jour du mois, de 1 à 31 |
getDay() | le jour de la semaine, de 0 (dimanche) à 6 (samedi) |
getMonth() | le mois, de 0 (janvier) à 11 (décembre) |
getFullYear() | l'année sur 4 chiffres |
getHours(), getMinutes(), getSeconds(), getMilliseconds() | l'heure, les minutes… |
getTime() | les millisecondes écoulées depuis le 1er janvier 1970 |
setDate(), setMonth(), setFullYear(), setHours()… | modifient la date |
toLocaleDateString("fr-FR"), toLocaleTimeString("fr-FR") | la date ou l'heure en texte, au format français |
getUTC...(), setUTC...() | les mêmes, en temps universel (UTC) |
Vidéo · À regarder
ENJavaScript Full Course for free
Bro Code · YouTube
| Méthode | Rôle | Exemple | Résultat |
|---|---|---|---|
Math.round(x) | arrondi le plus proche | Math.round(4.5) | 5 |
Math.floor(x) | arrondi inférieur | Math.floor(4.9) | 4 |
Math.ceil(x) | arrondi supérieur | Math.ceil(4.1) | 5 |
Math.trunc(x) | partie entière | Math.trunc(-4.7) | -4 |
Math.abs(x) | valeur absolue | Math.abs(-3) | 3 |
Math.pow(x, y) | puissance | Math.pow(2, 10) | 1024 |
Math.sqrt(x) | racine carrée | Math.sqrt(81) | 9 |
Math.max(...), Math.min(...) | maximum, minimum | Math.max(3, 9, 4) | 9 |
Math.random() | nombre aléatoire dans [0, 1[ | Math.random() | 0.7312… |
Math.PI | la constante π | Math.PI | 3.14159… |
Vidéo · À regarder
ENJavaScript Full Course for free
Bro Code · YouTube
| Méthode | Rôle |
|---|---|
alert(texte) | affiche un message ; bloque le programme jusqu'au clic sur OK |
confirm(texte) | demande une confirmation : renvoie true (OK) ou false (Annuler) |
prompt(texte, défaut) | demande une saisie : renvoie la chaîne saisie ou null |
open(url, nom, options) | ouvre une nouvelle fenêtre ou un nouvel onglet |
setTimeout(f, ms) / clearTimeout(id) | exécute f une fois après ms millisecondes / annule |
setInterval(f, ms) / clearInterval(id) | exécute f toutes les ms millisecondes / arrête |
Vidéo · À regarder
ENJavaScript Full Course for free
Bro Code · YouTube
/\d\d/ : deux chiffres. | n'importe quel caractère | /c.t/ : cat, cut, c9t |
n+ | au moins un n | /\d+/ : un nombre |
n* | zéro ou plusieurs n | /ab*/ : a, ab, abbb |
n? | zéro ou un n | /https?/ : http ou https |
n{3}, n{2,4} | exactement 3 ; de 2 à 4 | /\d{4}/ : 4 chiffres |
^ et $ | début et fin de la chaîne | /^\d+$/ : uniquement des chiffres |
\b | une limite de mot | /\bJS\b/ : le mot JS seul |
| Méthode | Appelée sur | Renvoie |
|---|---|---|
regex.test(chaine) | la regex | true ou false |
regex.exec(chaine) | la regex | un tableau avec la correspondance, ou null |
chaine.match(regex) | la chaîne | les correspondances (toutes avec g), ou null |
chaine.search(regex) | la chaîne | l'indice de la première correspondance, ou -1 |
chaine.replace(regex, texte) | la chaîne | une nouvelle chaîne (toutes les occurrences avec g) |
chaine.split(regex) | la chaîne | un tableau de morceaux |
Vidéo · À regarder
ENJavaScript Full Course for free
Bro Code · YouTube
Écris une fonction age(dateNaissance) qui reçoit une chaîne « AAAA-MM-JJ » et renvoie l'âge en années révolues, en tenant compte du jour et du mois d'anniversaire. Teste-la avec ta date de naissance.
Les objets, puis le mot-clé this (en anglais).
Le constructeur
Pour créer plusieurs objets du même modèle, on écrit une fonction constructeur et on l'appelle avec new.
function Telephone(nom, prix, stock, ref) {
this.nom = nom;
this.prix = prix;
this.stock = stock;
this.ref = ref;
this.verifierStock = function () {
return this.stock > 0;
};
}
const t1 = new Telephone("SmartF22", 400, 200, "pro1");
const t2 = new Telephone("Mi Max", 200, 0, "t2");
console.log(t1.nom); // SmartF22
console.log(t2.verifierStock()); // falseLe modèle de syntaxe du résumé écrit this.propriete1: param1, avec deux-points et virgules. Dans une fonction constructeur, ce sont des affectations : this.propriete1 = param1;. Les deux-points sont réservés à la syntaxe littérale { cle: valeur }. De plus, dans l'exemple new Telephone("t2", 200, 0, "Mi Max"), le nom et la référence sont inversés.
La syntaxe class (ES6)
Depuis 2015, JavaScript propose la syntaxe class, plus lisible, qui fait la même chose que le constructeur. Tu retrouves les notions du module M103 (POO).
class Telephone {
constructor(nom, prix, stock) {
this.nom = nom;
this.prix = prix;
this.stock = stock;
}
verifierStock() {
return this.stock > 0;
}
}
const t3 = new Telephone("Nova", 1500, 12);
console.log(t3.verifierStock()); // trueLes constructeurs, puis les classes (en anglais).
telephone.dateSortie = "2022"; // AJOUTER une propriété
telephone.prix = 350; // MODIFIER une propriété
for (const cle in telephone) { // PARCOURIR les clés
console.log(cle); // marque, prix, stock, ref, verifierStock, dateSortie
}
delete telephone.dateSortie; // SUPPRIMER une propriété
console.log(Object.keys(telephone)); // tableau des clés
console.log("prix" in telephone); // true : la propriété existeOn peut extraire plusieurs propriétés en une ligne : const { marque, prix } = telephone; crée deux variables marque et prix. Cela marche aussi avec les tableaux : const [premier, second] = ["A", "B"];.
Les tableaux (Array)
Un tableau est une liste ordonnée d'éléments, repérés par leur indice, qui commence à 0.
let vide = []; // la bonne pratique (plutôt que new Array())
let lettres = ["A", "B", "C"];
console.log(lettres.length); // 3 : la taille
console.log(lettres[1]); // "B"
console.log(lettres[lettres.length - 1]); // "C" : le dernier élément
console.log(lettres.indexOf("C")); // 2 : l'indice de "C" (-1 si absent)
console.log(lettres.includes("Z")); // falseUne expression régulière (regex) est un motif (pattern) qui décrit une forme de texte, pour rechercher, vérifier ou remplacer du texte. En JavaScript, c'est un objet RegExp, qu'on écrit entre deux barres obliques : /ofppt/, ou avec le constructeur : new RegExp("ofppt").
Tableau: La syntaxe
JSON (JavaScript Object Notation) est un format texte d'échange de données, lisible par les humains et par les machines. C'est le format standard pour échanger des données entre un client et un serveur (chapitre 14). Il est léger, gratuit, indépendant de tout langage et pris en charge par tous les navigateurs.
{ }, les tableaux entre crochets [ ] ;undefined, les guillemets simples, les commentaires et la virgule après le dernier élément.{
"nom": "Saidi",
"prenom": "Ali",
"age": 40,
"interets": null,
"experience": ["CSS", "JS", "HTML"],
"adresse": { "rue": "Sidi Maarouf", "ville": "Casablanca", "codeP": 10000 }
}À partir de la chaîne JSON ci-dessous : (1) convertis-la en tableau d'objets ; (2) affiche le nom et la ville de chaque contact ; (3) ajoute un contact ; (4) garde seulement les contacts dont le téléphone est valide (/^0[5-7]\d{8}$/) ; (5) reconvertis le résultat en JSON indenté.
const data = '[{"nom":"Saidi Ali","ville":"Casablanca","tel":"0612345678"},{"nom":"Filali Hassan","ville":"Rabat","tel":"06123"}]';Crée une classe Stagiaire avec les propriétés nom, prenom, filiere et notes (un tableau), et les méthodes moyenne() (arrondie à 2 décimales) et presenter() qui renvoie « Ali SAIDI, Développement digital, moyenne 13.50 ». Crée deux stagiaires et affiche-les.
Les tableaux (en anglais).
Tableau: Les chaînes de caractères (String)
Les méthodes des chaînes, le découpage et l'enchaînement de méthodes (en anglais).
Les dates (Date)
const maintenant = new Date(); // la date et l'heure actuelles
const examen = new Date(2026, 5, 15, 9, 0); // 15 JUIN 2026, 9 h 00 (mois de 0 à 11 !)
const depuisTexte = new Date("2026-06-15"); // à partir d'une chaîne
const depuisMs = new Date(0); // 1er janvier 1970 (millisecondes)
console.log(examen.getDate()); // 15 : le jour du mois (1-31)
console.log(examen.getDay()); // 1 : le jour de la semaine (0 = dimanche)
console.log(examen.getMonth()); // 5 : le mois (0 = janvier)
console.log(examen.getFullYear()); // 2026
console.log(examen.getHours()); // 9
console.log(examen.toLocaleDateString("fr-FR")); // 15/06/2026const aujourdhui = new Date();
const finAnnee = new Date(aujourdhui.getFullYear(), 11, 31);
const jours = Math.ceil((finAnnee - aujourdhui) / (1000 * 60 * 60 * 24));
console.log(`Encore ${jours} jours avant la fin de l'année`);Les dates en JavaScript (en anglais).
Math
L'objet Math fournit des constantes et des méthodes mathématiques. On ne l'instancie pas : on l'utilise directement.
const de = Math.floor(Math.random() * 6) + 1;L'objet Math, puis un générateur de nombres aléatoires (en anglais).
L'objet window
window représente la fenêtre du navigateur : c'est l'objet parent de tous les autres (document, console…). On peut omettre window. : alert() équivaut à window.alert().
let secondes = 5;
const minuteur = setInterval(() => {
console.log(secondes);
secondes--;
if (secondes < 0) {
clearInterval(minuteur); // arrête la répétition
console.log("Partez !");
}
}, 1000);
if (confirm("Supprimer ce fichier ?")) {
console.log("Supprimé");
}setTimeout, puis une horloge numérique avec setInterval (en anglais).
Les modificateurs se placent après la dernière barre : i (ignorer la casse), g (global : toutes les occurrences), m (multiligne).
Tableau: Les méthodes
let texte = "Un cours de JS";
console.log(texte.search("JS")); // 12
console.log(texte.replace(/js/i, "JavaScript")); // Un cours de JavaScript (i : sans casse)
console.log("un cours de JavaScript".search(/[A-Z]/)); // 12 : la première majuscule
console.log(/JS/.test(texte)); // true
console.log(/js/.test(texte)); // false (sensible à la casse)
console.log("12-05-2026".split(/-/)); // ["12", "05", "2026"]const regTel = /^0[5-7]\d{8}$/; // téléphone marocain : 06xxxxxxxx
const regEmail = /^[\w.-]+@[\w-]+\.[a-z]{2,}$/i; // e-mail (simplifié)
const regCode = /^\d{5}$/; // code postal : 5 chiffres
console.log(regTel.test("0612345678")); // true
console.log(regTel.test("612345678")); // false
console.log(regEmail.test("sara@ofppt.ma")); // trueconst jsonData = '{"nom":"Saidi", "prenom":"Ali"}';
console.log(typeof jsonData); // string
const objet = JSON.parse(jsonData); // texte → objet
console.log(typeof objet); // object
console.log(objet.nom + " " + objet.prenom); // Saidi Ali
const texte = JSON.stringify({ nom: "Saidi", prenom: "Ali" }); // objet → texte
console.log(texte); // {"nom":"Saidi","prenom":"Ali"}
console.log(JSON.stringify(objet, null, 2)); // version indentée, lisibleLes fichiers JSON, parse et stringify (en anglais).
À partir de const villes = ["rabat", "Casablanca", "fès", "Tanger", "agadir"]; : (1) mets chaque ville avec une majuscule initiale et le reste en minuscules ; (2) trie le résultat par ordre alphabétique ; (3) garde seulement les villes de plus de 5 lettres ; (4) affiche-les dans une chaîne séparée par « / ».