Il registro globale dei Symbol
Condivida i symbol con Symbol.for e keyFor.
Il registro globale dei Symbol è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 3 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 JavaScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso JavaScript Academy include 4 lezioni in totale.
Un registro condiviso
Il registro globale dei simboli consente di creare simboli condivisi in tutto il programma tramite una chiave, invece di renderli sempre univoci.
const a = Symbol.for("app.id")
const b = Symbol.for("app.id")
console.log(a === b)Symbol.for
Symbol.for cerca un simbolo tramite una chiave stringa nel registro. Se ne esiste già uno, lo restituisce; altrimenti ne crea uno nuovo e lo memorizza.
const token = Symbol.for("token")
console.log(token.description)Identità condivisa
A differenza delle normali chiamate a Symbol, due chiamate a Symbol.for con la stessa chiave restituiscono esattamente lo stesso simbolo, quindi risultano uguali.
const x = Symbol.for("shared")
const y = Symbol.for("shared")
console.log(x === y)Confronto con Symbol
Symbol crea sempre un nuovo simbolo univoco, mentre Symbol.for riutilizza la voce del registro esistente per la stessa chiave.
const local1 = Symbol("k")
const local2 = Symbol("k")
const global1 = Symbol.for("k")
const global2 = Symbol.for("k")
console.log(local1 === local2)
console.log(global1 === global2)Symbol.keyFor
Symbol.keyFor esegue l'operazione inversa: dato un simbolo del registro, restituisce la chiave stringa usata per crearlo.
const s = Symbol.for("config")
console.log(Symbol.keyFor(s))keyFor e simboli locali
Per un simbolo non presente nel registro, Symbol.keyFor restituisce undefined, consentendo di verificare se un simbolo è globale.
const local = Symbol("private")
const global = Symbol.for("public")
console.log(Symbol.keyFor(local))
console.log(Symbol.keyFor(global))Condivisione tra moduli
Il registro è condiviso anche tra parti diverse dell'applicazione, ad esempio moduli separati, il che lo rende utile per chiavi di coordinamento note.
function getKey() { return Symbol.for("event.bus") }
console.log(getKey() === Symbol.for("event.bus"))Convenzioni per i nomi
Poiché il registro è globale, anteponga un prefisso alle chiavi per evitare conflitti con altre librerie, ad esempio usando uno spazio dei nomi come il nome della Sua app.
const a = Symbol.for("myapp.user.id")
const b = Symbol.for("myapp.user.id")
console.log(a === b)Persistenza del registro
Una volta registrata una chiave, ogni successiva chiamata a Symbol.for con quella chiave restituisce lo stesso simbolo per tutta la durata del programma.
Symbol.for("once")
const again = Symbol.for("once")
console.log(Symbol.keyFor(again))Quando usare il registro
Usi il registro quando parti di codice separate devono concordare sullo stesso simbolo tramite il nome. Usi il normale Symbol quando contano maggiormente l'unicità e la privacy.
const sharedFlag = Symbol.for("feature.enabled")
const privateFlag = Symbol("feature.enabled")
console.log(sharedFlag === Symbol.for("feature.enabled"))
console.log(privateFlag === Symbol.for("feature.enabled"))Combinare con le chiavi degli oggetti
I simboli del registro funzionano anche come chiavi degli oggetti, consentendo di condividere metadati che qualsiasi modulo collaborante può leggere recuperando nuovamente il simbolo.
const META = Symbol.for("meta")
const obj = { [META]: "shared data" }
console.log(obj[Symbol.for("meta")])Verifica rapida
Verifichi la Sua conoscenza del registro.
Riepilogo
Riepilogo: il registro globale condivide i simboli tramite una chiave.
- Symbol.for riutilizza o crea un simbolo del registro
- La stessa chiave restituisce lo stesso simbolo
- Symbol.keyFor restituisce la chiave o undefined per i simboli locali
- Usi chiavi con uno spazio dei nomi per evitare conflitti
const a = Symbol.for("k")
console.log(Symbol.keyFor(a))Domande Frequenti
La lezione «Il registro globale dei Symbol» è gratuita?
Sì — il testo completo di «Il registro globale dei Symbol» è 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 JavaScript Academy, passa a CoddyKit PRO. Il corso JavaScript Academy include 4 lezioni in totale.
Cosa imparerò in «Il registro globale dei Symbol»?
Condivida i symbol con Symbol.for e keyFor. Eserciti JavaScript 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 JavaScript Academy?
Non è richiesta alcuna esperienza precedente. JavaScript 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 3 di 4.
Quanto tempo richiede la lezione «Il registro globale dei Symbol»?
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 JavaScript Academy?
Sì. Ogni lezione JavaScript 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
- Creare Symbol univoci
- Symbol come chiavi degli oggetti
- Il registro globale dei Symbol
- Symbol well-known