0Pricing
JavaScript Academy · Ders

Genel Symbol Kayıt Defteri

Symbol.for ve keyFor ile Symbol değerlerini paylaşın.

Genel Symbol Kayıt Defteri, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 4 dersten oluşur.

Paylaşılan Bir Kayıt Defteri

genel sembol kayıt defteri, her zaman benzersiz olmak yerine anahtara göre tüm programınızda paylaşılan semboller oluşturmanıza olanak tanır.

const a = Symbol.for("app.id")
const b = Symbol.for("app.id")
console.log(a === b)

Symbol.for

Symbol.for, kayıt defterinde bir dize anahtarına göre sembol arar. Bir sembol varsa onu döndürür; yoksa yeni bir sembol oluşturup saklar.

const token = Symbol.for("token")
console.log(token.description)

Paylaşılan Kimlik

Düz Symbol çağrılarının aksine, aynı anahtarla yapılan iki Symbol.for çağrısı tamamen aynı sembolü döndürür; bu nedenle eşit olarak karşılaştırılırlar.

const x = Symbol.for("shared")
const y = Symbol.for("shared")
console.log(x === y)

Symbol ile Karşılaştırma

Düz Symbol her zaman yeni ve benzersiz bir sembol oluştururken Symbol.for, aynı anahtar için mevcut bir kayıt defteri girdisini yeniden kullanır.

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 bunun tersini yapar: Bir kayıt defteri sembolü verildiğinde, onu oluşturmak için kullanılan dize anahtarını döndürür.

const s = Symbol.for("config")
console.log(Symbol.keyFor(s))

keyFor ve Yerel Semboller

Kayıt defterinde bulunmayan bir sembol için Symbol.keyFor, sembolün genel olup olmadığını sınamanın bir yolu olan undefined değerini döndürür.

const local = Symbol("private")
const global = Symbol.for("public")
console.log(Symbol.keyFor(local))
console.log(Symbol.keyFor(global))

Modüller Arası Paylaşım

Kayıt defteri, ayrı modüller gibi bir uygulamanın farklı bölümleri arasında bile paylaşılır; bu da onu iyi bilinen eşgüdüm anahtarları için kullanışlı kılar.

function getKey() { return Symbol.for("event.bus") }
console.log(getKey() === Symbol.for("event.bus"))

Adlandırma Kuralları

Kayıt defteri genel olduğundan, diğer kütüphanelerle çakışmaları önlemek için anahtarlarınıza bir ön ek ekleyin; örneğin uygulamanızın adı gibi bir ad alanı kullanın.

const a = Symbol.for("myapp.user.id")
const b = Symbol.for("myapp.user.id")
console.log(a === b)

Kayıt Defteri Kalıcıdır

Bir anahtar kaydedildikten sonra, bu anahtarla yapılan sonraki her Symbol.for çağrısı programın yaşam süresi boyunca aynı sembolü döndürür.

Symbol.for("once")
const again = Symbol.for("once")
console.log(Symbol.keyFor(again))

Kayıt Defteri Ne Zaman Kullanılır

Ayrı kod parçalarının aynı sembol üzerinde adı aracılığıyla anlaşması gerektiğinde kayıt defterini kullanın. Benzersizlik ve gizlilik daha önemliyse düz Symbol kullanın.

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"))

Nesne Anahtarlarıyla Birleştirme

Kayıt defteri sembolleri nesne anahtarı olarak da çalışır; böylece iş birliği yapan herhangi bir modül, sembolü yeniden alarak paylaşılan üst verileri okuyabilir.

const META = Symbol.for("meta")
const obj = { [META]: "shared data" }
console.log(obj[Symbol.for("meta")])

Hızlı Sınama

Kayıt defteri bilginizi sınayın.

Özet

Özet: Genel kayıt defteri sembolleri anahtara göre paylaşır.

  • Symbol.for bir kayıt defteri sembolünü yeniden kullanır veya oluşturur
  • Aynı anahtar aynı sembolü döndürür
  • Symbol.keyFor anahtarı, yerel semboller içinse undefined değerini döndürür
  • Çakışmaları önlemek için ad alanı içeren anahtarlar kullanın
const a = Symbol.for("k")
console.log(Symbol.keyFor(a))

Sıkça Sorulan Sorular

“Genel Symbol Kayıt Defteri” dersi ücretsiz mi?

Evet — “Genel Symbol Kayıt Defteri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 4 dersten oluşur.

“Genel Symbol Kayıt Defteri” dersinde ne öğreneceğim?

Symbol.for ve keyFor ile Symbol değerlerini paylaşın. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Genel Symbol Kayıt Defteri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Benzersiz Symbol Değerleri Oluşturma
  2. Nesne Anahtarları Olarak Symbol Değerleri
  3. Genel Symbol Kayıt Defteri
  4. İyi Bilinen Symbol Değerleri
← JavaScript Academy Sayfasına Dön