Angular and JavaScript
Tempo di lettura: 4 minuti

Negli ultimi anni, i cibi destrutturati sono diventati di gran moda tra i buongustai, per cui gli chef scompongono i piatti secondo la loro idea centrale (destrutturazione) e poi li ricostruiscono dai loro componenti di base (ristrutturazione). Cosa c’entra questo con JavaScript? Inoltre, supporta anche la destrutturazione e la ristrutturazione di Array e Oggetti. Fino al rilascio di ECMAScript 6 (ES6), la parte di destrutturazione dell’equazione era molto più difficile da ottenere rispetto alla ristrutturazione, poiché richiedeva diverse righe di codice. Ora, la possibilità di destrutturare un array o un oggetto in una riga di codice offre numerose possibilità di codifica. In questo tutorial sullo sviluppo web, ci concentreremo sulla destrutturazione degli oggetti oggi; il prossimo articolo si concentrerà sulla destrutturazione mista (Object e Array), insieme ad alcuni dei suoi usi più avanzati.

Stai cercando di imparare lo sviluppo web in un formato di corso online? Dai un’occhiata al nostro elenco di alcuni dei migliori Corsi di sviluppo web e HTML.

Nozioni di base sulla destrutturazione di JavaScript

Il Caratteristiche avanzate dell’array TypeScript/ES6 l’articolo ha toccato la destrutturazione degli array e ha confrontato la nuova sintassi ES6 con quella delle versioni precedenti di JavaScript (JS). Ad esempio, abbiamo assegnato gli elementi di un array a quattro variabili separate:

// in pre-ES6 Javascript
var ivoryKnightMembers = ['John', 'Rob', 'George', 'Steve'];
var john   = ivoryKnightMembers[0], 
    rob    = ivoryKnightMembers[1],
    George = ivoryKnightMembers[2], 
    Steve  = ivoryKnightMembers[3];

// using ES6 destructuring
let ivoryKnightMembers = ['John', 'Rob', 'George', 'Steve'];
let [john, rob, george, steve] = ivoryKnightMembers;

In quel tutorial JavaScript, abbiamo definito la destrutturazione come una funzionalità di EcmaScript 2015 e Typescript che consente di suddividere la struttura di un’entità. Sebbene tale definizione fosse sufficiente nel contesto dell’argomento in questione, ometteva alcuni altri punti sulla destrutturazione, come ad esempio:

  • Può essere applicato a una struttura complessa (ad esempio, un array o un oggetto).
  • Può essere utilizzato sia per l’assegnazione di variabili che per la dichiarazione di variabili.
  • Supporta la sintassi di destrutturazione nidificata per gestire le strutture nidificate.

Quindi copriamo ciascuno di questi punti a turno mentre si applicano agli oggetti.

Esempi di destrutturazione di oggetti in JavaScript

Il frammento di codice sopra è un esempio di destrutturazione di Array in un’assegnazione di variabile. Poiché gli oggetti JS memorizzano i loro attributi come array associativi, possiamo anche inserire un valore letterale Object sul lato sinistro di un’espressione di assegnazione per la destrutturazione dell’oggetto:

const band = {
    drummer: 'George',
    bassist: 'Steve',
    guitarist: 'Rob',
    vocalist: 'John'
};

// Object Destructuring
const { drummer, bassist, guitarist, vocalist } = band;

// Outputs "George, Steve, Rob, John"
console.log(drummer, bassist, guitarist, vocalist); 

Assegnazione di nuovi valori a variabili locali

Il frammento di codice successivo mostra come utilizzare la destrutturazione degli oggetti per assegnare nuovi valori alle variabili locali. Si noti che dobbiamo usare una coppia di parentesi racchiuse (()) nell’espressione di assegnazione. In caso contrario, il valore letterale dell’oggetto destrutturante verrà considerato come un’istruzione di blocco, che genererà un errore perché un blocco non può apparire sul lato sinistro di un’espressione di assegnazione:

// Initialize local variables
let drummer="George";
let bassist="Steve";
let guitarist="Rob";
let vocalist="John";

const band = {
    drummer: 'George',
    bassist: 'Steve',
    guitarist: 'Rob',
    vocalist: 'John'
};

// Reassign firstname and lastname using destructuring
// Enclose in a pair of parentheses, since this is an assignment expression
({ drummer, guitarist } = band);

// bassist and vocalist remain unchanged
// Outputs "George, Steve, Rob, John"
console.log(drummer, bassist, guitarist, vocalist);  

Assegnazione di valori di default e destrutturazione in JS

L’assegnazione della destrutturazione è molto flessibile, consentendo di assegnare variabili che non corrispondono ad alcuna chiave sull’oggetto destrutturato. Se lo fai, JS creerà felicemente la variabile e le assegnerà un valore di non definito. Altrimenti, puoi assegnare tu stesso un valore predefinito in questo modo:

const band = {
    drummer: 'George',
    bassist: 'Steve',
    guitarist: 'Rob',
    vocalist: 'John'
};

// Assign default value of 'Allan' to keyboardist if undefined
const { drummer, bassist, guitarist, keyboardist="Allan", vocalist } = band;

// List band members using ES6 template literals
// Outputs "Ivory Knight are George, Steve, Rob, Allan, and John"
console.log(`Ivory Knight are ${drummer}, ${bassist}, ${guitarist}, ${keyboardist}, and ${vocalist}.`);

Leggi: Utilizzo di variabili JavaScript e funzioni integrate

Modifica dei nomi delle variabili in JavaScript

Probabilmente stai già pensando che l’assegnazione di variabili usando la destrutturazione sia roba piuttosto potente. Bene, migliora ancora. Gli sviluppatori Web non si limitano a variabili che hanno lo stesso nome della chiave oggetto corrispondente. I programmatori possono assegnare un nome di variabile diverso usando la sintassi [object_key]:[variable_name]. Vuoi impostare alcuni valori predefiniti? Puoi assegnarne alcuni usando la sintassi [object_key]:[variable_name] = [default_value]:

const band = {
    drummer: 'George',
    bassist: 'Steve',
    guitarist: 'Rob',
    vocalist: 'John'
};

// Assign default value of 'Allan' to keyboards if undefined
const { drums: drummer, bass: bassist="New guy", guitars: guitarist, keyboards="Allan", vocals: vocalist } = band;

// List band members using ES6 template literals
// Outputs "Ivory Knight are George, New guy, Rob, Allan, and John"
console.log(`Ivory Knight are ${drums}, ${bass}, ${guitars}, ${keyboards}, and ${vocals}.`);

Destrutturazione di oggetti annidati in JavaScript

Come sicuramente saprai, gli oggetti stessi possono contenere altri oggetti. Pertanto, ha senso che anche gli oggetti figlio possano essere destrutturati. Ecco un esempio che mostra come farlo:

const band = {
    drummer: 'George',
    bassist: 'Steve',
    guitarist: 'Rob',
    vocalist: 'John',
    backupVocals: {
      lowBackups: 'Steve',
      highBackups: 'Rob'
    }
};

// Assign to local variables
const { drummer, bassist, guitarist, vocalist, backupVocals: {lowBackups, midBackups="N/A", highBackups} } = band;

// Outputs "Backup vocals performed by Steve, N/A, Rob."
console.log(`Backup vocals performed by ${lowBackups}, ${midBackups}, ${highBackups}.`);

Considerazioni finali sulla destrutturazione di oggetti ES6

In questo tutorial di sviluppo web, abbiamo imparato come destrutturare gli oggetti usando la sintassi ES6. Il prossimo articolo si concentrerà sulla destrutturazione mista (Object e Array), insieme ad alcuni dei suoi usi più avanzati.

Mentre lo aspetti, perché non dai un’occhiata la demo dei frammenti di codice di oggi? Puoi anche giocare con loro se vuoi!

Leggi di più Tutorial di programmazione JavaScript e guide allo sviluppo software.

Source link

Di Simone Serra

Web Designer Freelancer Realizzazione Siti Web Serra Simone Realizzo siti web, portali ed e-commerce con focus specifici sull’usabilità, l’impatto grafico, una facile gestione e soprattutto in grado di produrre conversioni visitatore-cliente. Elaboro siti internet, seguendo gli standard Web garantendo la massima compatibilità con tutti i devices. Sviluppo e-commerce personalizzati, multilingua, geolocalizzati per potervi mettere nelle migliori condizioni di vendita. Posiziono il tuo sito su Google per dare maggiore visibilità alla tua attività sui motori di ricerca con SEO di base o avanzato.