0Pricing
Frontend Academy · Lezione

Destructuring e spread degli oggetti

Estrarre le proprietà degli oggetti con il destructuring, clonare e unire gli oggetti con l’operatore spread e usare i parametri rest nelle firme delle funzioni.

Destructuring e spread degli oggetti è una lezione Frontend Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Frontend Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Frontend Academy include 4 lezioni in totale.

Che cos'è la destrutturazione?

La destrutturazione estrae valori da oggetti e array e li assegna a variabili denominate. È una forma abbreviata per più istruzioni di accesso alle proprietà e rende il codice conciso, comunicando chiaramente quali proprietà vengono utilizzate.

Nozioni di base sulla destrutturazione degli oggetti

Utilizzi le parentesi graffe sul lato sinistro di un'assegnazione per estrarre proprietà con nome.

const user = { name: 'Alice', age: 30, role: 'admin' };

// Without destructuring:
const name = user.name;
const age = user.age;

// With destructuring:
const { name, age, role } = user;
console.log(name); // 'Alice'
console.log(age);  // 30

Rinominare le variabili destrutturate

Utilizzi la sintassi property: newName per rinominare una proprietà durante la destrutturazione. È utile quando il nome della proprietà è in conflitto con una variabile esistente o non è abbastanza descrittivo.

const { name: userName, age: userAge } = user;
console.log(userName); // 'Alice'

Valori predefiniti nella destrutturazione

Se una proprietà è undefined, viene utilizzato un valore predefinito. Può combinarlo con la ridenominazione.

const { name, role = 'viewer', theme = 'light' } = user;
// role is 'admin' (from object)
// theme is 'light' (default — not in object)

Destrutturazione di oggetti annidati

Destrutturi gli oggetti annidati specificando pattern annidati.

const order = {
  id: 42,
  customer: { name: 'Bob', email: 'bob@example.com' },
  total: 99.99
};
const { id, customer: { name, email }, total } = order;
console.log(name); // 'Bob'

Destrutturazione degli array

Utilizzi le parentesi quadre per destrutturare gli array in base alla posizione. Salti gli elementi usando le virgole.

const [first, second, , fourth] = [10, 20, 30, 40];
console.log(first);  // 10
console.log(second); // 20
console.log(fourth); // 40

// Swap variables:
let a = 1, b = 2;
[a, b] = [b, a];
console.log(a, b); // 2 1

Destrutturazione dei parametri delle funzioni

Destrutturi direttamente nei parametri delle funzioni per ottenere API più pulite e codice autoesplicativo. È molto comune nelle funzioni dei componenti React.

function greet({ name, greeting = 'Hello' }) {
  return `${greeting}, ${name}!`;
}
greet({ name: 'Alice' });          // 'Hello, Alice!'
greet({ name: 'Bob', greeting: 'Hi' }); // 'Hi, Bob!'

L'operatore spread sugli oggetti

L'operatore spread { ...obj } crea una copia superficiale di un oggetto e può unire più oggetti. Quando le chiavi coincidono, quelle successive sovrascrivono quelle precedenti.

const defaults = { theme: 'light', lang: 'en', debug: false };
const userPrefs = { theme: 'dark', lang: 'fr' };
const settings = { ...defaults, ...userPrefs };
// { theme: 'dark', lang: 'fr', debug: false }

L'operatore spread sugli array

[...arr] crea una copia superficiale di un array. Utilizzi spread per concatenare array e per aggiungere elementi all'inizio o alla fine senza modificare l'array originale.

const base = [1, 2, 3];
const extended = [...base, 4, 5]; // [1, 2, 3, 4, 5]
const prepended = [0, ...base];   // [0, 1, 2, 3]
const combined = [...base, ...extended]; // [1, 2, 3, 1, 2, 3, 4, 5]

Sintassi rest nella destrutturazione

La sintassi rest raccoglie le proprietà o gli elementi rimanenti in un nuovo oggetto o array. Rest deve essere l'ultimo pattern.

const { name, ...rest } = { name: 'Alice', age: 30, role: 'admin' };
console.log(name); // 'Alice'
console.log(rest); // { age: 30, role: 'admin' }

const [head, ...tail] = [1, 2, 3, 4];
console.log(head); // 1
console.log(tail); // [2, 3, 4]

Copia superficiale e copia profonda

Sia spread sia la destrutturazione creano copie superficiali. Gli oggetti e gli array annidati rimangono riferimenti condivisi. Per una copia profonda, utilizzi structuredClone(obj) (moderno) oppure JSON.parse(JSON.stringify(obj)) (legacy).

const a = { x: 1, nested: { y: 2 } };
const b = { ...a };
b.x = 99;           // a.x is still 1 (shallow copy OK)
b.nested.y = 99;    // a.nested.y is now 99! (reference shared)

Verifica rapida

Che cosa fa const { a, ...rest } = obj?

Riepilogo: destrutturazione e spread

La destrutturazione degli oggetti estrae proprietà con nome. La destrutturazione degli array estrae i valori in base alla posizione. Rinomini con i due punti e imposti i valori predefiniti con =. Utilizzi pattern annidati per gli oggetti profondi. Spread crea copie superficiali e unisce oggetti o array. Rest raccoglie le proprietà o gli elementi rimanenti.

Domande Frequenti

La lezione «Destructuring e spread degli oggetti» è gratuita?

Sì — il testo completo di «Destructuring e spread degli oggetti» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Frontend Academy, passa a CoddyKit PRO. Il corso Frontend Academy include 4 lezioni in totale.

Cosa imparerò in «Destructuring e spread degli oggetti»?

Estrarre le proprietà degli oggetti con il destructuring, clonare e unire gli oggetti con l’operatore spread e usare i parametri rest nelle firme delle funzioni. Eserciti Frontend Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Frontend Academy?

Non è richiesta alcuna esperienza precedente. Frontend Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Destructuring e spread degli oggetti»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Frontend Academy?

Sì. Ogni lezione Frontend Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Metodi degli array: map, filter, reduce e find
  2. Destructuring e spread degli oggetti
  3. Template literal e optional chaining
  4. Moduli: import ed export
← Torna a Frontend Academy