CodeBlanks Logo Icon CodeBlanks

Symbol nedir?

JavaScript kursu · İleri seviye · Ders 66/100

Symbol ile benzersiz ve değişmez bir primitive değer oluşturmayı öğrenirsin.

Symbol nedir?

JavaScript'te Symbol yedinci primitive türüdür; sayı, dize ve boolean gibi değişmez (immutable) bir değerdir. Symbol() çağırdığında sana özgün, benzersiz bir değer döner.

İlginç olan şu: Symbol('id') iki kez çağrılsa bile her seferinde farklı bir symbol üretir. Parantez içindeki metin yalnızca bir açıklama (description) etiketidir; kimliği etkilemez. typeof Symbol() çağrısı 'symbol' döndürür.

Açıklama etiketi

Parantez içinde verdiğin metin bir açıklama (description) etiketidir. Symbol('user').description çağrısı 'user' döndürür; açıklama verilmezse undefined döner.

Bu etiket yalnızca hata ayıklamada işe yarar: console.log sembolü Symbol(user) biçiminde gösterir. İki sembolün açıklaması aynı olsa bile kimlikleri farklı kalır. Yani açıklama, eşitlik karşılaştırmasında rol oynamaz.

Uygulama İki sembol oluştur ve karşılaştır

İki sembolü first ve second değişkenlerine al. İkisine de 'id' açıklamasını ver. typeof ile first'in 'symbol' olduğunu yazdır. Sonra first !== second karşılaştırmasının sonucunu yazdır.

Örnek çözümü göster
const first = Symbol('id');
const second = Symbol('id');
console.log(typeof first === 'symbol');
console.log(first !== second);

Kendini test et

  1. Aşağıdakilerden hangisi Symbol için doğrudur?

    • Symbol('x') === Symbol('x') ifadesi false döner
    • Symbol('x') === Symbol('x') ifadesi true döner
    • Symbol() çağrısı bir nesne (object) döndürür
    • typeof Symbol() 'object' döndürür
    Cevabı göster

    Symbol('x') === Symbol('x') ifadesi false döner — Doğru. Her Symbol() çağrısı benzersiz bir değer üretir; açıklama aynı olsa bile iki sembol birbirine eşit değildir.

  2. İki sembolün farklı olduğunu göster

    const different = Symbol('x') ____ Symbol('x');
    Cevabı göster
    const different = Symbol('x') !== Symbol('x');
  3. Symbol kavramlarını eşleştir

    Symbol()
    Benzersiz değer üretir
    description
    Hata ayıklama etiketi
    typeof Symbol()
    'symbol' döndürür
    Symbol('x') === Symbol('x')
    false döndürür

İleri seviye bölümündeki tüm dersler