Italiano (Italian)

JavaScript - Proprietà degli Oggetti

Ciao, futuri maghi di JavaScript! Oggi ci immergeremo nel magico mondo delle proprietà degli oggetti JavaScript. Come il vostro amico insegnante di scienze informatiche del quartiere, sono qui per guidarvi in questo viaggio emozionante. Allora, afferrate le vostre bacchette virtuali (tastiere) e lanciamo qualche incantesimo di codice!

JavaScript - Object Properties

Proprietà degli Oggetti JavaScript

Gli oggetti in JavaScript sono come scrigni del tesoro - custodiscono informazioni preziose sotto forma di proprietà. Ogni proprietà è una coppia chiave-valore, dove la chiave è come un'etichetta e il valore è il tesoro stesso. Creiamo il nostro primo oggetto:

let mago = {
nome: "Harry",
eta: 17,
casa: "Gryffindor"
};

Qui, abbiamo creato un oggetto mago con tre proprietà: nome, eta e casa. Ogni proprietà ha una chiave (come "nome") e un valore (come "Harry").

Accesso alle Proprietà degli Oggetti

Ora che abbiamo il nostro oggetto mago, come accediamo alle sue proprietà? Ci sono due modi per farlo:

  1. Notazione a Punto
  2. Notazione a Parentesi

Proviamo entrambi:

// Notazione a Punto
console.log(mago.nome);  // Output: Harry

// Notazione a Parentesi
console.log(mago["casa"]);  // Output: Gryffindor

La notazione a punto è più semplice e comune. Tuttavia, la notazione a parentesi è utile quando i nomi delle proprietà contengono spazi o caratteri speciali, o quando si utilizza una variabile per accedere alla proprietà.

let proprietà = "eta";
console.log(mago[proprietà]);  // Output: 17

Accesso alle Proprietà Annidate

A volte, gli oggetti possono contenere altri oggetti. È come una magica matrioska! Espandiamo il nostro oggetto mago:

let mago = {
nome: "Harry",
eta: 17,
casa: "Gryffindor",
bastone: {
legno: "Holly",
nucleo: "Piuma di fenice",
lunghezza: 11
}
};

Per accedere alle proprietà annidate, semplicemente concateniamo le nostre notazioni a punto o a parentesi:

console.log(mago.bastone.legno);  // Output: Holly
console.log(mago["bastone"]["nucleo"]);  // Output: Piuma di fenice

Aggiunta o Aggiornamento delle Proprietà degli Oggetti

Gli oggetti in JavaScript sono mutabili, il che significa che possiamo cambiarli dopo la creazione. Diamo al nostro mago alcune nuove abilità:

// Aggiunta di una nuova proprietà
mago.abilità = "Quidditch";

// Aggiornamento di una proprietà esistente
mago.eta = 18;

console.log(mago.abilità);  // Output: Quidditch
console.log(mago.eta);  // Output: 18

Eliminazione delle Proprietà degli Oggetti

A volte, dobbiamo far scomparire le proprietà. Per questo, utilizziamo l'operatore delete:

delete mago.casa;
console.log(mago.casa);  // Output: undefined

Puff! La proprietà "casa" è scomparsa. Ricorda, utilizzare delete rimuove solo la proprietà dall'oggetto, non influisce su eventuali variabili che potrebbero aver tenuto il valore della proprietà.

Enumerazione delle Proprietà degli Oggetti

E se volessimo vedere tutte le proprietà di un oggetto? Possiamo utilizzare un ciclo for...in:

for (let chiave in mago) {
console.log(chiave + ": " + mago[chiave]);
}

Questo elencherà tutte le proprietà enumerabili dell'oggetto mago. Ma c'è di più! Possiamo anche utilizzare Object.keys(), Object.values() o Object.entries() per ottenere array delle chiavi, dei valori o entrambi di un oggetto:

console.log(Object.keys(mago));    // Output: ["nome", "eta", "bastone", "abilità"]
console.log(Object.values(mago));  // Output: ["Harry", 18, {legno: "Holly", nucleo: "Piuma di fenice", lunghezza: 11}, "Quidditch"]
console.log(Object.entries(mago)); // Output: [["nome", "Harry"], ["eta", 18], ["bastone", {...}], ["abilità", "Quidditch"]]

Attributi delle Proprietà

Ogni proprietà in JavaScript ha determinati attributi che definiscono il suo comportamento. Questi attributi sono come i tratti di personalità della proprietà. Conosciamoli:

  1. value: Il valore della proprietà (ovviamente!)
  2. writable: Possiamo cambiare il valore della proprietà?
  3. enumerable: Questa proprietà dovrebbe apparire quando enumeriamo le proprietà dell'oggetto?
  4. configurable: Possiamo eliminare questa proprietà o modificare i suoi attributi?

Per impostazione predefinita, tutti questi sono impostati su true per le proprietà che creiamo normalmente. Ma possiamo cambiarli utilizzando Object.defineProperty():

Object.defineProperty(mago, "nome", {
writable: false,
enumerable: false
});

mago.nome = "Ron";  // Questo non funzionerà
console.log(mago.nome);  // Output: Harry

for (let chiave in mago) {
console.log(chiave);  // "nome" non apparirà qui
}

Ecco una tabella che riassume i metodi delle proprietà che abbiamo imparato:

Metodo Descrizione
object.property Accede a una proprietà utilizzando la notazione a punto
object["property"] Accede a una proprietà utilizzando la notazione a parentesi
object.property = value Aggiunge o aggiorna una proprietà
delete object.property Elimina una proprietà
for...in Enumera le proprietà dell'oggetto
Object.keys(object) Ottiene un array delle chiavi dell'oggetto
Object.values(object) Ottiene un array dei valori dell'oggetto
Object.entries(object) Ottiene un array delle coppie [chiave, valore] dell'oggetto
Object.defineProperty() Definisce una nuova proprietà o modifica una proprietà esistente

E voilà, giovani programmatori! Avete appena completato il vostro corso intensivo sulle proprietà degli oggetti JavaScript. Ricorda, la pratica rende perfetti, quindi continuate a sperimentare con questi concetti. Prima di sapere, sarete in grado di evocare oggetti complessi come veri maghi di JavaScript!

Credits: Image by storyset