Symbol.prototype.toString() मेथड निर्दिष्ट सिंबल ऑब्जेक्ट का स्ट्रिंग प्रतिनिधित्व लौटाता है, जो "Symbol(description)" फॉर्मेट में होता है। यह डिबगिंग और लॉगिंग के लिए उपयोगी है।
उदाहरण
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>
body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; padding: 20px; }
div { font-size: 20px; font-weight: 500; }
button { padding: 10px 20px; background: #6f42c1; color: white; border: none; border-radius: 4px; cursor: pointer; }
</style> </head> <body>
<h1>JavaScript Symbol.toString() मेथड</h1>
<div class="sample"></div>
<button class="Btn">सिंबल के स्ट्रिंग प्रतिनिधित्व प्राप्त करें</button>
<h3>ऊपर दिए गए बटन पर क्लिक करके सिंबल के लिए स्ट्रिंग प्रतिनिधित्व प्राप्त करें</h3>
<script>
const fillEle = document.querySelector(".sample");
const symbol = Symbol.for("HELLO");
const symbol1 = Symbol.for("NEW");
const symbol2 = Symbol.for(711);
document.querySelector(".Btn").addEventListener("click", () => {
fillEle.innerHTML += symbol.toString() + "<br>";
fillEle.innerHTML += symbol1.toString() + "<br>";
fillEle.innerHTML += symbol2.toString() + "<br>";
});
</script> </body> </html>
आउटपुट
Symbol(HELLO) Symbol(NEW) Symbol(711)
Symbol.toString() vs String()
const sym = Symbol("test");
sym.toString(); // "Symbol(test)" - स्पष्ट सिंबल प्रतिनिधित्व
String(sym); // "Symbol(test)" - समान
`${sym}`; // TypeError: सिंबल को स्ट्रिंग में इम्प्लिसिटली नहीं बदल सकते
// स्पष्ट रूपांतरण आवश्यक
String(sym); // ठीक
sym.toString(); // ठीक
Symbol.description प्रॉपर्टी (ES2019)
const sym = Symbol("मेरा विवरण");
sym.description; // "मेरा विवरण" - केवल विवरण भाग
sym.toString(); // "Symbol(मेरा विवरण)" - पूरा प्रतिनिधित्व
Symbol.for() के साथ
const globalSym = Symbol.for("shared");
globalSym.toString(); // "Symbol(shared)"
// ग्लोबल रजिस्ट्री में समान की = समान सिंबल
Symbol.for("shared") === globalSym; // true
डिबगिंग टिप
कंसोल में सिंबल लॉग करते समय, console.log(sym) स्वचालित रूप से toString() कॉल करता है, लेकिन स्ट्रिंग कनकैटनेशन में स्पष्ट कॉल आवश्यक है।