दिलचस्प पोस्ट
मैं Greasemonkey में jQuery का उपयोग कैसे कर सकता हूं? UITextview के लिए लाइनों की संख्या सीमित करें Android में HTTP प्रमाणीकरण कैसे करें? मैं जावा HTTPResponse से JSON को कैसे पार्स कर सकता हूं? मैं एक निश्चित मूल्य के साथ एक स्टाइल वेक्टर से एक आइटम कैसे निकालूं? मैं सेंकम आउटपुट को कैसे 'बिन' डायर में बनाऊं? सिंटेक्स सहायता – ऑब्जेक्ट नाम के रूप में वैरिएबल प्रोल में शफल करें पायथन में इंटरलीविंग सूचियां क्या मुझे JavaScript में अर्धविराम का उपयोग करना चाहिए? आर में दशमलव स्थानों का प्रारूपण करना एक नकारात्मक संख्या की तुलना करते समय यह आकार ऑपरेटर के साथ क्यों हो रहा है? बस मार्ग प्राप्त करने के लिए Google मानचित्र API आमज / एएमडी मॉड्यूल आयात करने के लिए नया ईएस 6 सिंटैक्स अर्थात् `आयात करें foo = की आवश्यकता है ('फू')` इकाई फ़्रेमवर्क 6 (कोड-प्रथम) में संग्रहित प्रक्रिया को कैसे कॉल करें?

यह निर्धारित करने के लिए कि क्या चर 'अपरिभाषित' या 'नल' है?

मैं कैसे निर्धारित कर सकता हूँ कि चर undefined या null ? मेरा कोड निम्नानुसार है:

 var EmpName = $("div#esd-names div#name").attr('class'); if(EmpName == 'undefined'){ //DO SOMETHING }; 
 <div id="esd-names"> <div id="name"></div> </div> 

लेकिन अगर मैं ऐसा करता हूं, तो जावास्क्रिप्ट अनुवादक निष्पादन रोक देता है।

वेब के समाधान से एकत्रित समाधान "यह निर्धारित करने के लिए कि क्या चर 'अपरिभाषित' या 'नल' है?"

आप ऐसा करने के लिए सार समानता ऑपरेटर के गुणों का उपयोग कर सकते हैं:

 if (variable == null){ // your code here. } 

क्योंकि null == undefined सच है, उपरोक्त कोड दोनों null और undefined को पकड़ेगा।

null और undefined एक साथ पकड़ने का मानक तरीका यह है:

 if (variable == null) { // do something } 

– जो अधिक स्पष्ट लेकिन कम संक्षिप्त के बराबर 100% है:

 if (variable === undefined || variable === null) { // do something } 

व्यावसायिक जेएस लिखते समय, यह माना जाता है कि [प्रकार की समानता और == बनाम === ] [1] का व्यवहार समझा जाता है। इसलिए हम == उपयोग करते हैं और केवल null तुलना करते हैं।


फिर से संपादित करें

typeof का उपयोग करने के सुझावों में टिप्पणी केवल गलत है हां, ऊपर मौजूद मेरा समाधान संदर्भएर्रर का कारण होगा यदि चर मौजूद नहीं है। यह एक अच्छी बात है। यह संदर्भ त्रुटि वांछनीय है: इससे आपको अपनी गलतियों को खोजने में मदद मिलेगी और आप अपने कोड को शिप करने से पहले उन्हें ठीक कर पाएंगे, जैसे कम्पाइलर त्रुटियों को अन्य भाषाओं में भी होगा।

आपके कोड में अघोषित वैरिएबल के लिए आपके पास कोई संदर्भ नहीं होना चाहिए।

 if (variable == null) { // Do stuff, will only match null or undefined, this won't match false } 

उपर्युक्त उत्तरों के संयोजन में, यह सबसे पूर्ण उत्तर होगा:

 if( typeof variable === 'undefined' || variable === null ){ // Do stuff } 

यह किसी भी वेरिएबल के लिए काम करना चाहिए जो या तो अघोषित हो या घोषित और स्पष्ट रूप से रिक्त या अपरिभाषित करने के लिए सेट किया गया है बुलियन अभिव्यक्ति का मूल्यांकन किसी भी घोषित वेरिएबल के लिए किया जाना चाहिए जो वास्तविक वास्तविक नॉन-मान है।

 if (typeof EmpName != 'undefined' && EmpName) { 

यदि मान नहीं है, तो यह सही होगा:

  • शून्य

  • अपरिभाषित

  • NaN

  • खाली स्ट्रिंग ("")

  • 0

  • असत्य

अद्यतन करें:

जांच undefined अधिक आत्मविश्वास लाता है

jQuery attr() फ़ंक्शन या तो रिक्त स्ट्रिंग या वास्तविक मान देता है (और कभी null या undefined )। केवल समय यह रिटर्न undefined होता है जब आपके चयनकर्ता ने कोई तत्व वापस नहीं किया।

तो आप एक रिक्त स्ट्रिंग के खिलाफ परीक्षण करना चाहते हैं। वैकल्पिक रूप से, रिक्त स्ट्रिंग्स के बाद से, रिक्त और अपरिभाषित फूटी-वाई हैं, आप ऐसा कर सकते हैं:

 if (!EmpName) { //do something } 

मुझे यह प्रयोग करना पसंद है:

 if (!!variable) { //do something } 

यह दोनों अशक्त और अपरिभाषित पकड़ता है

यदि वे चर आप जांचना चाहते हैं जो वैश्विक है, तो करें

 if (window.yourVarName) { // Your code here } 

इस तरह से जांचने के लिए कोई त्रुटि नहीं yourVarName , भले ही yourVarName चर मौजूद न हो।

उदाहरण: मैं जानना चाहता हूं कि क्या मेरा ब्राउज़र इतिहास API का समर्थन करता है

 if (window.history) { history.back(); } 

यह कैसे काम करता है:

window एक वस्तु है जो सभी वैश्विक चर को अपनी संपत्ति के रूप में रखती है, और जावास्क्रिप्ट में यह गैर-मौजूदा ऑब्जेक्ट प्रॉपर्टी का उपयोग करने की कोशिश करना कानूनी है। अगर history मौजूद नहीं है तो window.history रिटर्न undefinedundefined झूठा है, इसलिए if(undefined){} ब्लॉक में कोड नहीं चलेगा

मैं इसके लिए अपना स्वयं का कार्य लिखने आया हूँ … जावास्क्रिप्ट अजीब है

शाब्दिक रूप से कुछ भी उपयोग करने योग्य (ध्यान दें कि यह भी जांचता है कि क्या वेरिएबल में कोई भी योग्य मूल्य शामिल हैं । लेकिन चूंकि यह जानकारी आमतौर पर भी आवश्यक है, मुझे लगता है कि यह पोस्टिंग के लायक है)। कृपया नोट छोड़ने पर विचार करें।

 function empty(v) { let type = typeof v; if(type === 'undefined') { return true; } if(type=== 'boolean') { return !v; } if(v === null) { return true; } if(v === undefined) { return true; } if(v instanceof Array) { if(v.length < 1) { return true; } } else if(type === 'string') { if(v.length < 1) { return true; } if(v==='0') { return true; } } else if(type === 'object') { if(Object.keys(v).length < 1) { return true; } } else if(type === 'number') { if(v===0) { return true; } } return false; } 

टाइपप्रति संगत।

संपादित करें। यह फ़ंक्शन ठीक उसी तरह करना चाहिए जैसे कि PHP empty() फ़ंक्शन ( RETURN VALUES देखें)

undefined , null , false , 0 , 0.0 , "0" {} , [] को खाली मानता है।

"0.0" , NaN , " " , true को खाली नहीं माना जाता है।

चूंकि आप jQuery का प्रयोग कर रहे हैं, आप यह निर्धारित कर सकते हैं कि एक चर अपरिभाषित है या इसका मान एकल फ़ंक्शन का उपयोग करके शून्य है।

 var s; // undefined jQuery.isEmptyObject(s); // will return true; s = null; // defined as null jQuery.isEmptyObject(s); // will return true; // usage if(jQuery.isEmptyObject(s)){ alert('Either variable: s is undefined or its value is null'); }else{ alert('variable: s has value ' + s); } s = 'something'; // defined with some value jQuery.isEmptyObject(s); // will return false; 

मुझे बस इस समस्या का अर्थ है यानी अगर कोई ऑब्जेक्ट रिक्त है I
मैं बस इसका इस्तेमाल करता हूं:

 if (object) { Somecode} 

अर्थात

 if (document.getElementById("enterJob")) document.getElementById("enterJob").className += ' current'; 

jQuery चेक एलिमेंट नल

 var dvElement = $('#dvElement'); if (dvElement.length > 0) { //do something } else{ //else do something else } 

सबसे अच्छा तरीका:

 if(typeof variable==='undefined' || variable===null) { /* do your stuff */ } 
 var i; if(i === null || typeof i === 'undefined'){ console.log(i,'i is undefined or null') }else{ console.log(i,'i has some value') } 

मैं क्रोम कंसोल पर इस परीक्षा को चलाता हूं (शून्य 0) का उपयोग करके आप अनिर्धारित जाँच कर सकते हैं

 var c; undefined if(c === void 0)alert(); // output = undefined var c = 1; // output = undefined if(c === void 0)alert(); // output = undefined // check c value c // output = 1 if(c === void 0)alert(); // output = undefined c = undefined; // output = undefined if(c === void 0)alert(); // output = undefined 

आप जांच कर सकते हैं कि मूल्य का उपयोग करके बस अपरिभाषित या शून्य नहीं है:

 if(typeof value == 'undefined'){ 

शून्य प्रकार के कॉलिंग "ऑब्जेक्ट" का मूल्य देता है, क्योंकि विशेष मान को रिक्त ऑब्जेक्ट संदर्भ माना जाता है संस्करण 5 के माध्यम से सफारी और क्रोम संस्करण 7 के माध्यम से एक रंजक है जहां एक नियमित अभिव्यक्ति पर टाइपिंग के प्रकार "फ़ंक्शन" लौटाते हैं जबकि अन्य सभी ब्राइड्स "ऑब्जेक्ट" लौटते हैं

 var x; if (x === undefined) { alert ("only declared, but not defined.") }; if (typeof y === "undefined") { alert ("not even declared.") }; 

आप केवल एक दूसरे का उपयोग कर सकते हैं: क्योंकि यह परिभाषा और घोषणा दोनों की जांच करेगा

यह जांचने के लिए कि कोई चर रिक्त या अपरिभाषित है I

  if(sVal === '' || sVal === null ||typeof sVal === 'undefined'){ console.log('variable is undefined or null'); } 

यह एक बहुत पुराना सवाल है, लेकिन मुझे अभी भी लगता है कि इन 2 स्थितियों का परीक्षण करने का सबसे अच्छा / सुरक्षित तरीका स्ट्रिंग के लिए मूल्य डालना है:

 var EmpName = $("div#esd-names div#name").attr('class'); // Undefined check if (Object.prototype.toString.call(EmpName) === '[object Undefined]'){ // do something with your code } // Nullcheck if (Object.prototype.toString.call(EmpName) === '[object Null]'){ // do something with your code } 

if(x==null) जावास्क्रिप्ट में बुरा विचार है, "==" साथ न्यायाधीश अप्रत्याशित प्रकार के बलात्कार का कारण हो सकता है, और कॉफी-स्क्रिप्ट द्वारा पढ़ा नहीं जा सकता है, कभी भी "==" या "! =" शर्त निर्णय में उपयोग नहीं किया जा सकता !

if(x) होगा। लेकिन 0 और "" अनुक्रियाशील, इसे " गलत "!= null" साथ समान विधि के रूप में गलत नहीं माना जाएगा।

यहां छवि विवरण दर्ज करें

https://www.w3schools.com/js/js_best_practices.asp

किसी विशिष्ट मामले के लिए मेरा 5 सेंट योगदान:

 var bUndef = ($('#' + selectedNodeID).position() === undefined) if (bUndef) .... 

संपत्ति तत्व नहीं परिक्रमा है!