Nesne Anahtarları Olarak Symbol Değerleri
Çakışmayan özellikler için Symbol değerlerini kullanın.
Nesne Anahtarları Olarak Symbol Değerleri, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 4 dersinin 2. 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.
Anahtar Olarak Semboller
Bir sembol, nesne özelliği anahtarı olarak kullanılabilir. Her sembol benzersiz olduğundan, böyle bir özellik herhangi bir dize anahtarıyla yanlışlıkla çakışamaz.
const id = Symbol("id")
const user = {}
user[id] = 123
console.log(user[id])Hesaplanan Sembol Anahtarları
Bir nesne sabitinde sembolü anahtar olarak kullanmak için, onu hesaplanan özellik adı olarak köşeli parantezlerin içine alın.
const id = Symbol("id")
const user = {
name: "Ann",
[id]: 99
}
console.log(user[id])Bir Sembol Özelliğini Okuma
Özelliğini okuyabilmek için aynı sembole ilişkin bir başvuruyu elinizde bulundurmanız gerekir. Bu başvuru olmadan değer fiilen gizli kalır.
const secret = Symbol("secret")
const obj = { [secret]: "hidden" }
console.log(obj[secret])for-in İçinde Sıralanmaz
Sembol anahtarları for-in döngüsü tarafından atlanır. Böylece sembol özellikleri normal yinelemeye dahil edilmez.
const tag = Symbol("tag")
const obj = { a: 1, b: 2, [tag]: 3 }
for (const key in obj) {
console.log(key)
}Object.keys Tarafından Atlanır
Object.keys yalnızca dize anahtarlarını döndürür; bu nedenle sembol anahtarlı özellikler de ondan dışlanır.
const tag = Symbol("tag")
const obj = { a: 1, [tag]: 2 }
console.log(Object.keys(obj))JSON'dan Gizlenir
JSON.stringify sembol anahtarlarını tamamen yok sayar; bu nedenle serileştirilmiş çıktıda hiçbir zaman görünmezler. Bu özellik, onları dahili üst veriler için kullanışlı kılar.
const meta = Symbol("meta")
const obj = { name: "Bo", [meta]: "internal" }
console.log(JSON.stringify(obj))Sembol Anahtarlarını Bulma
Sembol anahtarlarını listelemek için Object.getOwnPropertySymbols kullanın; bu yöntem, bir nesnedeki sembol özelliklerin dizisini döndürür.
const tag = Symbol("tag")
const obj = { a: 1, [tag]: 2 }
const syms = Object.getOwnPropertySymbols(obj)
console.log(syms.length)Ad Çakışmalarını Önleme
Sembol anahtarları, farklı kütüphanelerin birbirlerinin özelliklerinin üzerine yazma riski olmadan aynı nesneye özellik eklemesine olanak tanır; çünkü sembolleri farklıdır.
const libA = Symbol("data")
const libB = Symbol("data")
const shared = {}
shared[libA] = 1
shared[libB] = 2
console.log(shared[libA], shared[libB])Sembol Anahtarları ve Yayma
Nesne yayma işleci, for-in ve Object.keys'in aksine sembol anahtarlarını kopyalar; bu nedenle klonlama sırasında bunların da taşınacağını unutmayın.
const tag = Symbol("tag")
const src = { a: 1, [tag]: 2 }
const copy = { ...src }
console.log(copy[tag])Özel Verilere Benzer Verileri Saklama
Sembol anahtarları, gizliliğin yumuşak bir biçimini sunar: verilere yalnızca sembolü elinde bulunduran kod erişebilir ve veriler normal özellik listelerinin dışında kalır.
const balance = Symbol("balance")
function makeAccount() {
const acct = {}
acct[balance] = 100
return { acct: acct, key: balance }
}
const a = makeAccount()
console.log(a.acct[a.key])Sembol Özelliklerini Silme
Bir sembol özelliğini, sembol başvurusuyla delete işlecini kullanarak diğer özelliklerde olduğu gibi kaldırırsınız.
const tag = Symbol("tag")
const obj = { [tag]: 5 }
delete obj[tag]
console.log(obj[tag])Hızlı Sınama
Sembol anahtarları bilginizi sınayın.
Özet
Özet: Semboller güvenli ve gizli nesne anahtarları oluşturur.
- Hesaplanan sembol anahtarları için köşeli parantez kullanın
- for-in, Object.keys ve JSON tarafından atlanırlar
- Object.getOwnPropertySymbols aracılığıyla listelenirler
- Çakışmasız üst veriler için çok uygundurlar
const k = Symbol("k")
const o = { [k]: 7 }
console.log(o[k])Sıkça Sorulan Sorular
“Nesne Anahtarları Olarak Symbol Değerleri” dersi ücretsiz mi?
Evet — “Nesne Anahtarları Olarak Symbol Değerleri” 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.
“Nesne Anahtarları Olarak Symbol Değerleri” dersinde ne öğreneceğim?
Çakışmayan özellikler için Symbol değerlerini kullanı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 2. dersidir.
“Nesne Anahtarları Olarak Symbol Değerleri” 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
- Benzersiz Symbol Değerleri Oluşturma
- Nesne Anahtarları Olarak Symbol Değerleri
- Genel Symbol Kayıt Defteri
- İyi Bilinen Symbol Değerleri