JS Symbol

Symbol primitivi noyob identifikatorni ifodalaydi.

Tip nomi — symbol.

Symbol qiymatlar JavaScript’ning 7 ta primitiv tipidan biri.

ULASHISH

Symbol’lar nima uchun kerak

Symbol’lar xususiyat kalitlari sifatida ishlatilishi mumkin bo‘lgan noyob qiymatlarni taqdim etadi.

Hech qanday ikkita symbol bir-biriga teng emas.


Symbol’lar yaratish

Symbol yaratish uchun Symbol() funksiyasidan foydalaning.

Misol

const id = Symbol();

Ixtiyoriy ravishda tavsif (description) berishingiz mumkin.

Misol

const id = Symbol("userId");

Tip haqida ma’lumot

Symbol qiymatning primitiv tipi — symbol.

Misol

const id = Symbol(); (typeof id)   // symbol
O‘zingiz sinab ko‘ring »

Symbol’lar noyobdir

Symbol() ning har bir chaqiruvi yangi noyob qiymat yaratadi.

Misol

const a = Symbol("id1"); const b = Symbol("id1"); (a === b);   false
O‘zingiz sinab ko‘ring »

Eslatma

Tavsiflar ("id1") bir xil bo‘lsa ham, symbol’lar turli qiymatlardir.



Symbol tavsiflari

Symbol tavsifi debug qilish va ko‘rsatish maqsadlarida ishlatiladi.

Tavsif symbol’ning noyobligiga ta’sir qilmaydi.

Misol

const id = Symbol("userId"); name = id.description;
O‘zingiz sinab ko‘ring »

Symbol’lar xususiyat kalitlari sifatida

Symbol’lar odatda obyekt xususiyatlarining kalitlari sifatida ishlatiladi.

Misol

const id = Symbol("id"); const person = {   name: "John" }; person[id] = 123;
O‘zingiz sinab ko‘ring »

Symbol kalit string ko‘rinishidagi xususiyat nomlari bilan to‘qnashmaydi.


Global symbol’lar

Symbol.for() metodi global symbol reyestridan symbol yaratadi yoki oladi.

Misol

const a = Symbol.for("id"); const b = Symbol.for("id"); (a === b)   // true
O‘zingiz sinab ko‘ring »

Symbol() dan farqli ravishda, Symbol.for() mavjud symbol’ni qaytarishi mumkin.


Taniqli (well-known) symbol’lar

JavaScript obyekt xatti-harakatini sozlaydigan bir nechta o‘rnatilgan symbol’larni taqdim etadi.

Symbol Vazifasi
Symbol.iterator Iteratsiya xatti-harakatini belgilaydi
Symbol.asyncIterator Asinxron iteratsiya xatti-harakatini belgilaydi
Symbol.toStringTag Obyekt tipi stringlarini sozlaydi
Symbol.hasInstance instanceof xatti-harakatini sozlaydi

Taniqli symbol’lardan JavaScript’ning o‘zi foydalanadi.


Symbol’lar va iteratsiya qilinadigan obyektlar

Iteratsiya qilinadigan obyektlar Symbol.iterator dan foydalanadi.

Misol

const iterator = [1,2,3][Symbol.iterator]();


Konstruktor emas

Symbol konstruktor emas.

new kalit so‘zini Symbol bilan ishlatib bo‘lmaydi.

Misol

new Symbol("id");

Bu misol TypeError tashlaydi.


Symbol va String

Symbol String
Har doim noyob Takroriy qiymatlarga ega bo‘lishi mumkin
Primitiv tipi — symbol Primitiv tipi — string
Ko‘pincha xususiyat kalitlari sifatida ishlatiladi Ko‘pincha matn qiymatlari sifatida ishlatiladi



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!