ЈаваСцрипт симбол (са примерима)

У овом упутству ћете научити о ЈаваСцрипт симболу уз помоћ примера.

ЈаваСцрипт симбол

ЈаваСцрипт ЕС6 је представио нови примитивни тип података тзв Symbol. Симболи су непроменљиви (не могу се мењати) и јединствени су. На пример,

 // two symbols with the same description const value1 = Symbol('hello'); const value2 = Symbol('hello'); console.log(value1 === value2); // false

Иако вредност1 и вредност2 садрже исти опис, они се разликују.

Креирање симбола

Помоћу Symbol()функције креирате Symbol. На пример,

 // creating symbol const x = Symbol() typeof x; // symbol

Као опис можете додати опционални низ. На пример,

 const x = Symbol('hey'); console.log(x); // Symbol(hey)

Опис симбола приступа

Да бисмо приступили опису симбола, користимо .оператор. На пример,

 const x = Symbol('hey'); console.log(x.description); // hey

Додајте симбол као кључ објекта

Можете додати симболе као кључ у објекту помоћу угластих заграда (). На пример,

 let id = Symbol("id"); let person = ( name: "Jack", // adding symbol as a key (id): 123 // not "id": 123 ); console.log(person); // (name: "Jack", Symbol(id): 123)

Симболи нису укључени у фор … у Лооп

for… inПетља не Итерате преко Симболиц својства. На пример,

 let id = Symbol("id"); let person = ( name: "Jack", age: 25, (id): 12 ); // using for… in for (let key in person) ( console.log(key); )

Оутпут

 име година

Предност употребе симбола у објекту

Ако се исти фрагмент кода користи у разним програмима, онда је боље користити Symbolsу објектном кључу. То је зато што можете користити исто име кључа у различитим кодовима и избећи проблеме са дуплицирањем. На пример,

 let person = ( name: "Jack" ); // creating Symbol let id = Symbol("id"); // adding symbol as a key person(id) = 12;

У горенаведеном програму, ако personобјекат користи и други програм, не бисте желели да додате својство којем други програм може да приступи или га промени. Стога коришћењем Symbolстварате јединствено својство које можете да користите.

Ако други програм такође треба да користи својство под именом ид , само додајте симбол са именом idи неће бити проблема са дуплицирањем. На пример,

 let person = ( name: "Jack" ); let id = Symbol("id"); person(id) = "Another value";

У горњем програму, чак и ако се исто име користи за чување вредности, Symbolтип података имаће јединствену вредност.

У горњем програму, да је коришћен кључ низа, тада би каснији програм променио вредност својства. На пример,

 let person = ( name: "Jack" ); // using string as key person.id = 12; console.log(person.id); // 12 // Another program overwrites value person.id = 'Another value'; console.log(person.id); // Another value

У горњем програму други user.idпреписује претходну вредност.

Методе симбола

Постоје различите методе доступне са Симбол-ом.

Метод Опис
for() Претражује постојеће симболе
keyFor() Враћа заједнички кључ симбола из глобалног регистра симбола.
toSource() Приказује низ који садржи извор објекта Симбол
toString() Приказује низ који садржи опис симбола
valueOf() Враћа примитивну вредност објекта Симбол.

Пример: Методе симбола

 // get symbol by name let sym = Symbol.for('hello'); let sym1 = Symbol.for('id'); // get name by symbol console.log( Symbol.keyFor(sym) ); // hello console.log( Symbol.keyFor(sym1) ); // id

Својства симбола

Својства Опис
asyncIterator Враћа задати АсинцИтератор за објекат
hasInstance Одређује да ли објекат конструктора препознаје објекат као своју инстанцу
isConcatSpreadable Означава да ли објекат треба поравнати са елементима низа
iterator Враћа задати итератор за објекат
match Поклапа се са низом
matchAll Враћа итератор који даје подударања регуларног израза са низом
replace Замењује подударања подниза низа
search Враћа индекс унутар низа који се подудара са регуларним изразом
split Дијели низ на индексе који се подударају са регуларним изразом
species Ствара изведене објекте
toPrimitive Претвара објекат у примитивну вредност
toStringTag Даје задани опис објекта
description Приказује низ који садржи опис симбола

Пример: Пример својстава симбола

 const x = Symbol('hey'); // description property console.log(x.description); // hey const stringArray = ('a', 'b', 'c'); const numberArray = (1, 2, 3); // isConcatSpreadable property numberArray(Symbol.isConcatSpreadable) = false; let result = stringArray.concat(numberArray); console.log(result); // ("a", "b", "c", (1, 2, 3))

Занимљиви Чланци...