जावास्क्रिप्ट प्रतीक (उदाहरण के साथ)

इस ट्यूटोरियल में, आप उदाहरणों की सहायता से जावास्क्रिप्ट प्रतीक के बारे में जानेंगे।

जावास्क्रिप्ट प्रतीक

जावास्क्रिप्ट ईएस 6 ने एक नया आदिम डेटा प्रकार पेश किया Symbol। प्रतीक अपरिवर्तनीय हैं (बदले नहीं जा सकते) और अद्वितीय हैं। उदाहरण के लिए,

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

हालाँकि value1 और value2 दोनों में एक ही विवरण है, वे अलग-अलग हैं।

प्रतीक बनाना

आप 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 किसी वस्तु के लिए डिफ़ॉल्ट 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))

दिलचस्प लेख...