Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript Symbol.keyFor(): ग्लोबल सिंबल की प्राप्त करें

Symbol.keyFor() स्टैटिक मेथड ग्लोबल सिंबल रजिस्ट्री में दिए गए सिंबल से जुड़ी की (स्ट्रिंग) को खोजता है और लौटाता है। यदि सिंबल ग्लोबल रजिस्ट्री में नहीं मिलता (अर्थात Symbol() से बना है, Symbol.for() से नहीं), तो undefined लौटाता है।

उदाहरण

<!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: #fd7e14; color: white; border: none; border-radius: 4px; cursor: pointer; } 
</style> </head> </head> <body> 
<h1>JavaScript Symbol.keyFor() फंक्शन</h1> 
<div class="sample"></div> 
<button class="Btn">सिंबल की खोजें</button> 
<h3>ऊपर दिए गए बटन पर क्लिक करके सिंबल के लिए की खोजें</h3> 
<script> 
    const fillEle = document.querySelector(".sample"); 
    
    // ग्लोबल रजिस्ट्री में सिंबल (Symbol.for से बने)
    const symbol = Symbol.for("HELLO"); 
    const symbol1 = Symbol.for("NEW"); 
    const symbol2 = Symbol.for(711); 
    
    // लोकल सिंबल (Symbol() से बने) - keyFor के लिए undefined लौटाएंगे
    const localSym = Symbol("LOCAL"); 
    
    document.querySelector(".Btn").addEventListener("click", () => { 
        fillEle.innerHTML += "symbol = " + Symbol.keyFor(symbol) + "<br>"; 
        fillEle.innerHTML += "symbol1 = " + Symbol.keyFor(symbol1) + "<br>"; 
        fillEle.innerHTML += "symbol2 = " + Symbol.keyFor(symbol2) + "<br>"; 
        fillEle.innerHTML += "localSym = " + Symbol.keyFor(localSym) + "<br>"; 
    }); 
</script> </body> </html>

आउटपुट

symbol = HELLO
symbol1 = NEW
symbol2 = 711
localSym = undefined

मुख्य अंतर

बनाने का तरीकाSymbol.keyFor()उपयोग का मामला
Symbol.for("key")"key" लौटाता हैक्रॉस-रियलम शेयर्ड सिंबल
Symbol("desc")undefinedयूनिक, प्राइवेट सिंबल

व्यावहारिक उपयोग

// 1. सिंबल की पहचान करना
function logSymbol(sym) {
    const key = Symbol.keyFor(sym);
    if (key) {
        console.log(`ग्लोबल सिंबल: ${key}`);
    } else {
        console.log(`लोकल सिंबल: ${sym.toString()}`);
    }
}

// 2. ग्लोबल रजिस्ट्री इंस्पेक्शन (केवल डिबगिंग)
// कोई सीधा तरीका नहीं सभी कीज सूचीबद्ध करने का

// 3. सीरियलाइज़ेशन
function serializeSymbol(sym) {
    const key = Symbol.keyFor(sym);
    return key ? {type: "global", key} : {type: "local", desc: sym.description};
}

संबंधित: Symbol.for()

Symbol.for(key) ग्लोबल रजिस्ट्री में key के लिए सिंबल खोजता/बनाता है। Symbol.keyFor() इसका विपरीत ऑपरेशन है।

  1. JavaScript Number() फंक्शन JavaScript Number() फंक्शन

    JavaScript Number() फंक्शन ऑब्जेक्ट वैल्यू को तर्क के रूप में पास करके उसके संबंधित न्यूमेरिक वैल्यू में बदल देता है।उदाहरण<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width,

  1. जावास्क्रिप्ट में फ़ंक्शन प्रोटोटाइप जावास्क्रिप्ट में फ़ंक्शन प्रोटोटाइप

    जावास्क्रिप्ट में बनाए गए फ़ंक्शन्स में हमेशा जावास्क्रिप्ट इंजन द्वारा प्रोटोटाइप प्रॉपर्टी जोड़ी जाती है। प्रोटोटाइप प्रॉपर्टी एक ऑब्जेक्ट है जिसमें डिफ़ॉल्ट रूप से कंस्ट्रक्टर प्रॉपर्टी होती है। फ़ंक्शन प्रोटोटाइप को निम्न द्वारा एक्सेस किया जा सकता है - functionName.prototype जब ऑब्जेक्ट्स को फ

  1. जावास्क्रिप्ट में फ़ंक्शन बॉरोइंग जावास्क्रिप्ट में फ़ंक्शन बॉरोइंग

    call(), apply() और bind() का उपयोग जावास्क्रिप्ट में मेथड्स बॉरो करने के लिए किया जाता है। जावास्क्रिप्ट में मेथड्स बॉरो करने के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport&qu