2011-09-28 27 views

उत्तर

72
if (typeof variable !== 'undefined') { 
    // .. 
} 
else 
{ 
    // .. 
} 

की तरह कुछ का उपयोग कर सकते यहाँ और अधिक व्याख्या पढ़ सकते हैं:

JavaScript isset() equivalent

+3

सख्त तुलना और बेहतर प्रदर्शन के लिए === का उपयोग करें। –

+1

@ अमेरिकनवाईक-इन * टाइपोफ * * [==]] (http://ecma-international.org/ecma-262/5.1/#sec-11.9.3) को हल करने के लिए एल्गोरिदम का परीक्षण करें और ['=== '] (http://ecma-international.org/ecma-262/5.1/#sec-11.9.6) समान है क्योंकि दोनों मानों में एक ही प्रकार (स्ट्रिंग) है, तो बेहतर प्रदर्शन कहां से आता है? – RobG

+0

यह विफल रहता है क्योंकि 'टाइपऑफ नल'' ऑब्जेक्ट' – nikjohn

0

आप इस

if (typeof varname != 'undefined') 
    { 
     //do this 
    }  
    else 
    { 
     //do this 

    } 
3

आप बस प्रकार की जाँच करें।

if(typeof yourVar !== "undefined"){ 
    alert("defined"); 
} 
else{ 
    alert("undefined"); 
} 
6

in ऑपरेटर का उपयोग करें।

'myVar' in window; // for global variables only 

typeof चेकों एक चर यदि के लिए सच वापस आ जाएगी,

  1. यह निर्धारित नहीं किया गया
  2. यह परिभाषित किया गया है और मूल्य undefined है, या
  3. यह परिभाषित किया गया है लेकिन अभी तक शुरू नहीं हुआ।

निम्नलिखित उदाहरण दूसरे और तीसरे बिंदु को चित्रित करेंगे।

// defined, but not initialized 
var myVar; 
typeof myVar; // undefined 

// defined, and initialized to undefined 
var myVar = undefined; 
typeof myVar; // undefined 
+0

है, आप वैश्विक चर के विशेष मामले में केवल * विंडो * में उपयोग कर सकते हैं क्योंकि उन्हें वैश्विक वस्तु के गुण भी बनाये जाते हैं। स्थानीय चरों में ऐसी कोई स्वीकार्य चर वस्तु नहीं है। यह मानते हुए कि ब्राउज़र विंडो के लिए एक विंडो ऑब्जेक्ट उचित हो सकता है लेकिन सामान्य रूप से यह वास्तव में सत्य नहीं है। – RobG

+1

@RobG - इसे 'विंडो' या वैश्विक वस्तु नहीं होना चाहिए। इसके बजाय किसी ऑब्जेक्ट का उपयोग किया जा सकता है। आपने स्थानीय रूप से परिभाषित चर के बारे में एक अच्छा बिंदु उठाया है जो यहां उपलब्ध नहीं है। मुझे यह पता लगाने में दिलचस्पी होगी कि मेरे पास पहले मानदंडों के आधार पर स्थानीय चर के लिए अनिश्चितता निर्धारित करने का कोई तरीका है या नहीं। – Anurag

+0

यदि आप चर और दायरे के बारे में बात कर रहे हैं, तो आप केवल वैश्विक चर के बीच अंतर कर सकते हैं (क्योंकि वे वैश्विक वस्तु के गुण हैं) और शेष। नेस्टेड फ़ंक्शन में, यह बताना असंभव है कि कोई पहचानकर्ता स्थानीय या बाहरी फ़ंक्शन वैरिएबल है क्योंकि आप संबंधित चर ऑब्जेक्ट्स तक नहीं पहुंच सकते हैं। वस्तु संपत्ति संकल्प एक अलग बात है। – RobG

संबंधित मुद्दे