Passer au contenu principal
eLearner.app
Module 3 · Leçon 2 sur 410/32 dans le cours~10 min
Leçons du module (2/4)

Objets : la table de hachage

Un objet en JS est une collection non ordonnée de paires clé → valeur. Les clés sont des chaînes (ou des Symbol), les valeurs peuvent être n'importe quoi : nombres, chaînes, tableaux, autres objets, fonctions. C'est la structure de données la plus utilisée du langage : chaque "enregistrement" de ton domaine sera généralement un objet.

JS
const utente = {
  nome: 'Anna',
  eta: 28,
  attivo: true,
  ruoli: ['admin', 'editor'],
};

Lire des propriétés : dot vs bracket

Il existe deux notations équivalentes :

JS
utente.nome; // 'Anna'    (dot — la forma normale)
utente['nome']; // 'Anna'    (bracket — equivalente)

// Le bracket sono OBBLIGATORIE quando:
// 1) la chiave non è un identificatore valido
const tag = { 'codice-fiscale': 'ABC123' };
tag['codice-fiscale']; // OK
// tag.codice-fiscale;      // errore di sintassi

// 2) la chiave è calcolata (variabile/espressione)
const campo = 'eta';
utente[campo]; // 28

Une propriété manquante renvoie undefined, sans erreur :

JS
utente.telefono; // undefined

Ajouter, modifier, supprimer

JS
const u = { nome: 'Anna' };
u.eta = 28; // aggiunge
u.nome = 'Anna B.'; // modifica
delete u.eta; // rimuove la proprietà

delete est un mot-clé (keyword). Il s'agira d'un cas d'utilisation rare : dans la plupart des cas, tu voudras produire un nouvel objet sans cette clé (nous le verrons avec l'opérateur spread).

Shorthand : des clés qui portent le même nom que la variable

Lorsque le nom de la clé coïncide avec celui de la variable, tu peux omettre la duplication :

JS
const nome = 'Anna';
const eta = 28;

const u1 = { nome: nome, eta: eta }; // forma esplicita
const u2 = { nome, eta }; // shorthand, equivalente

Vérifier la présence d'une propriété

Trois options, par ordre de préférence :

JS
'nome' in utente; // true   ← operatore in
utente.nome !== undefined; // true   ← funziona quasi sempre
Object.hasOwn(utente, 'nome'); // true   ← moderno, sicuro

À toi de jouer

Exercice#js.m3.l2.e1
Tentatives : 0Chargement…

Crée l'objet user = { name: 'Sara', age: 22 }, puis ajoute la propriété 'active' à true et renvoie l'objet comme dernière expression.

Chargement de l'éditeur…
Afficher l'indice

Tu peux ajouter des propriétés après coup avec la notation par point (dot notation).

Solution disponible après 3 tentatives

Exercice de révision

Exercice#js.m3.l2.e2
Tentatives : 0Chargement…

Étant donné `product = { code: 'A1', price: 9.9 }` et la chaîne `key = 'price'`, renvoie le prix en utilisant la notation entre crochets (la dernière expression doit s'évaluer à 9.9).

Chargement de l'éditeur…
Afficher l'indice

Avec les crochets, tu peux passer une variable comme clé.

Solution disponible après 3 tentatives