[javascript] जांचें कि जावास्क्रिप्ट में ऑब्जेक्ट मौजूद है या नहीं



7 Answers

यहां बहुत सारी आधा सत्य हैं, इसलिए मैंने सोचा कि मैं कुछ चीजों को स्पष्ट करता हूं।

दरअसल आप सटीक रूप से यह नहीं बता सकते कि कोई चर मौजूद है (जब तक आप प्रत्येक दूसरी पंक्ति को ट्राइक-कैच ब्लॉक में लपेटना नहीं चाहते)।

इसका कारण जावास्क्रिप्ट में undefined का यह कुख्यात मूल्य है, जिसका अर्थ यह नहीं है कि चर परिभाषित नहीं किया गया है, या यह undefined !== not defined नहीं है undefined !== not defined

var a;
alert(typeof a); // undefined (declared without a value)
alert(typeof b); // undefined (not declared)

तो दोनों एक चर जो मौजूद है और दूसरा एक जो आपको undefined प्रकार की रिपोर्ट नहीं कर सकता है।

@ केविन की गलतफहमी के लिए, null == undefined । यह प्रकार के दबाव के कारण है, और यह मुख्य कारण है कि क्यों क्रॉकफोर्ड हर किसी को यह बताता रहता है कि सख्त समानता ऑपरेटर === का उपयोग हमेशा इस तरह की गलत चीज़ों के लिए परीक्षण करने के लिए इस तरह की चीज से अनिश्चित है। null !== undefined आपको देता है कि आप क्या उम्मीद कर सकते हैं। कृपया यह भी ध्यान दें, कि foo != null यह जांचने का एक प्रभावी तरीका हो सकता है कि कोई चर न तो undefined और न ही null । बेशक आप स्पष्ट हो सकते हैं, क्योंकि यह पठनीयता में मदद कर सकता है।

यदि आप प्रश्न को प्रतिबंधित करते हैं कि कोई ऑब्जेक्ट मौजूद है या नहीं, typeof o == "object" एक अच्छा विचार हो सकता है, सिवाय इसके कि यदि आप सरणी ऑब्जेक्ट्स पर विचार नहीं करते हैं, क्योंकि यह object का प्रकार भी होगा जो आपको छोड़ सकता है थोड़ा संचय। उल्लेख नहीं है कि typeof null आपको object भी देगा जो कि गलत है।

प्रारंभिक क्षेत्र जहां आपको वास्तव में typeof , undefined , null , unknown और अन्य मिस्टर के बारे में सावधान रहना चाहिए मेजबान वस्तुएं हैं। उन्हें भरोसा नहीं किया जा सकता है। वे लगभग किसी भी गंदे चीज को करने के लिए स्वतंत्र हैं। इसलिए उनके साथ सावधान रहें, यदि आप कर सकते हैं तो कार्यक्षमता की जांच करें, क्योंकि यह ऐसी सुविधा का उपयोग करने का एकमात्र सुरक्षित तरीका है जो अस्तित्व में नहीं हो सकता है।

Question

मैं जावास्क्रिप्ट में किसी ऑब्जेक्ट के अस्तित्व को कैसे सत्यापित करूं?

निम्नलिखित कार्य करता है:

if (!null)
   alert("GOT HERE");

लेकिन यह विफल रहता है:

if (!maybeObject)
   alert("GOT HERE");

त्रुटि: शायद ऑब्जेक्ट परिभाषित नहीं है।




आप "टाइपोफ" का उपयोग कर सकते हैं।

if(typeof maybeObject != "undefined")
    alert("GOT HERE");



या, आप सभी मेरे अनन्य अस्तित्व () विधि का उपयोग शुरू कर सकते हैं और असंभव समझा जाने वाली चीजों को करने में सक्षम हो सकते हैं। अर्थात:

जैसी चीजें: exists("blabla") , या यहां तक ​​कि: exists("foreignObject.guessedProperty.guessNext.propertyNeeded") भी संभव है ...




if (maybeObject !== undefined)
  alert("Got here!");



यदि यह एक वैश्विक वस्तु है, तो आप इसका उपयोग कर सकते हैं if (!window.maybeObject)




div alignmnt tabbed पैनल का उपयोग कर टेक्स्टबॉक्स मान को एक फ्रेम में इनलाइन फ्रेम पर सेट करें। तो सबसे पहले, मूल्य निर्धारित करने से पहले हमें चयनित टैबड पैनल फ्रेम उपलब्ध कराने की आवश्यकता है या निम्नलिखित कोडों का उपयोग नहीं करना चाहिए:

जावास्क्रिप्ट कोड:

/////////////////////////////////////////
<script>

function set_TextID()
            {
                try
                    {
                        if(!parent.frames["entry"])
                            {
                            alert("Frame object not found");    
                            }
                            else
                            {
                                var setText=document.getElementById("formx").value;
                                parent.frames["entry"].document.getElementById("form_id").value=setText;
                            }
                            if(!parent.frames["education"])
                            {
                            alert("Frame object not found");    

                            }
                            else
                            {
                                var setText=document.getElementById("formx").value;
                                parent.frames["education"].document.getElementById("form_id").value=setText;
                            }
                            if(!parent.frames["contact"])
                            {
                            alert("Frame object not found");    

                            }
                            else
                            {
                                var setText=document.getElementById("formx").value;
                                parent.frames["contact"].document.getElementById("form_id").value=setText;
                            }

                        }catch(exception){}
                }

</script>



मैंने अभी ऊपर से उदाहरणों का परीक्षण किया है और कोई भी मेरे लिए काम नहीं करता है, इसलिए इसके बजाय मैंने इसका उपयोग किया है:

    btnAdd = document.getElementById("elementNotLoadedYet");
    if (btnAdd != null) {
       btnAdd.textContent = "Some text here";
    } else {
      alert("not detected!");
    }




मेरे लिए यह काम किया:

if(document.getElementsByClassName("classname").length != 0 ){
   alert("classname exist");
}



Related