Lezioni del modulo (2/4)
Oggetti: la mappa chiave-valore
Un oggetto in JS è una raccolta non ordinata di coppie chiave → valore.
Le chiavi sono stringhe (o Symbol), i valori sono qualsiasi cosa: numeri,
stringhe, array, altri oggetti, funzioni. È la struttura dati più usata del
linguaggio: ogni "record" del tuo dominio sarà tipicamente un oggetto.
const utente = {
nome: 'Anna',
eta: 28,
attivo: true,
ruoli: ['admin', 'editor'],
};Leggere proprietà: dot vs bracket
Esistono due notazioni equivalenti:
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]; // 28Una proprietà mancante restituisce undefined, senza errori:
utente.telefono; // undefinedAggiungere, modificare, rimuovere
const u = { nome: 'Anna' };
u.eta = 28; // aggiunge
u.nome = 'Anna B.'; // modifica
delete u.eta; // rimuove la proprietàdelete è una keyword. Tornerà a essere un caso d'uso raro: nella maggior
parte dei casi vorrai produrre un nuovo oggetto senza quella chiave (lo
vedremo con lo spread).
Shorthand: chiavi che si chiamano come la variabile
Quando il nome della chiave coincide con quello della variabile, puoi omettere la duplicazione:
const nome = 'Anna';
const eta = 28;
const u1 = { nome: nome, eta: eta }; // forma esplicita
const u2 = { nome, eta }; // shorthand, equivalenteControllare la presenza di una proprietà
Tre opzioni, in ordine di preferenza:
'nome' in utente; // true ← operatore in
utente.nome !== undefined; // true ← funziona quasi sempre
Object.hasOwn(utente, 'nome'); // true ← moderno, sicuroProva tu
Crea l'oggetto user = { name: 'Sara', age: 22 }, poi aggiungi la proprietà 'active' a true e restituisci l'oggetto come ultima espressione.
Mostra suggerimento
Puoi aggiungere proprietà a posteriori con la dot notation.
Soluzione disponibile dopo 3 tentativi
Esercizio di ripasso
Dato `product = { code: 'A1', price: 9.9 }` e la stringa `key = 'price'`, restituisci il prezzo usando la notazione a bracket (l'ultima espressione deve valutare a 9.9).
Mostra suggerimento
Con bracket puoi passare una variabile come chiave.
Soluzione disponibile dopo 3 tentativi