मैं एक चर की जांच कैसे करूं अगर यह
null
याundefined
क्या हैnull
और के बीच अंतर क्या हैundefined
?क्या अंतर है
==
और===
"===" के लिए Google को खोजना मुश्किल है)?
मैं एक चर की जांच कैसे करूं अगर यह null
या undefined
क्या है null
और के बीच अंतर क्या है undefined
?
क्या अंतर है ==
और ===
"===" के लिए Google को खोजना मुश्किल है)?
जवाबों:
यदि यह
null
याundefined
...
परिवर्तनशील है null
:
if (a === null)
// or
if (a == null) // but see note below
... लेकिन ध्यान दें उत्तरार्द्ध भी सच होगा यदि a
है undefined
।
क्या यह है undefined
:
if (typeof a === "undefined")
// or
if (a === undefined)
// or
if (a == undefined) // but see note below
... लेकिन फिर से, ध्यान दें कि पिछले एक अस्पष्ट है; अगर a
यह सच है तो यह भी होगा null
।
अब, उपरोक्त के बावजूद, उन लोगों के लिए जाँच करने का सामान्य तरीका इस तथ्य का उपयोग करना है कि वे गलत हैं :
if (!a) {
// `a` is falsey, which includes `undefined` and `null`
// (and `""`, and `0`, and `NaN`, and [of course] `false`)
}
यह कल्पना में टोबूलियन द्वारा परिभाषित किया गया है ।
... और के बीच अंतर क्या है
null
औरundefined
?
वे दोनों मूल्य आमतौर पर कुछ की अनुपस्थिति को इंगित करने के लिए उपयोग किए जाते हैं। undefined
अधिक सामान्य एक है, जिसका उपयोग चर के डिफ़ॉल्ट मान के रूप में किया जाता है, जब तक कि वे कुछ अन्य मान असाइन नहीं किए जाते हैं, क्योंकि फ़ंक्शन तर्कों के मूल्य जो फ़ंक्शन को कॉल किए जाने पर प्रदान नहीं किए गए थे, और मूल्य के रूप में आपको तब मिलता है जब आप एक वस्तु पूछते हैं एक संपत्ति के लिए यह नहीं है। लेकिन यह उन सभी स्थितियों में स्पष्ट रूप से उपयोग किया जा सकता है। (किसी वस्तु के पास संपत्ति नहीं होने, और मूल्य के साथ संपत्ति होने के undefined
बीच अंतर होता है; undefined
एक तर्क के लिए एक फ़ंक्शन को कॉल करने और उस तर्क को पूरी तरह से छोड़ने के बीच एक अंतर होता है ।)
null
की तुलना में थोड़ा अधिक विशिष्ट है undefined
: यह एक खाली वस्तु संदर्भ है। जावास्क्रिप्ट शिथिल टाइप है, लेकिन निश्चित रूप से जावास्क्रिप्ट के साथ बातचीत की सभी चीजें शिथिल टाइप की नहीं हैं। यदि ब्राउज़र में DOM जैसे API को ऑब्जेक्ट संदर्भ की आवश्यकता होती है जो रिक्त है, तो हम उपयोग करते हैं null
, नहीं undefined
। और इसी तरह, डोम केgetElementById
ऑपरेशन एक ऑब्जेक्ट संदर्भ देता है - या तो एक वैध (यदि यह DOM तत्व पाया गया), या null
(यदि यह नहीं था)।
दिलचस्प है (या नहीं), वे अपने स्वयं के प्रकार हैं। जो कहना है, null
नल प्रकार undefined
में एकमात्र मान है , और अपरिभाषित प्रकार में एकमात्र मान है।
"==" और "===" में क्या अंतर है
उनके बीच एकमात्र अंतर यह है कि ==
मानों को मिलान करने के लिए प्रयास करने के लिए जबरदस्ती टाइप ===
करेंगे , और नहीं करेंगे। उदाहरण के "1" == 1
लिए सच है, क्योंकि "1"
करने के लिए coerces 1
। लेकिन "1" === 1
है झूठी क्योंकि प्रकार से मेल नहीं खाते। ( "1" !== 1
सच है।) का पहला (वास्तविक) कदम ===
है "क्या ऑपरेंड के प्रकार समान हैं?" और यदि उत्तर "नहीं" है, तो परिणाम है false
। यदि प्रकार समान हैं, तो यह वही करता है जो ==
करता है।
प्रकार बलपूर्वक काफी जटिल नियमों का उपयोग करता है और इसके आश्चर्यजनक परिणाम हो सकते हैं (उदाहरण के लिए, "" == 0
सच है)।
कल्पना में अधिक:
==
, जिसे "ढीली" समानता भी कहा जाता है)===
)if (a) { ... }
का अर्थ होगा "यदि a
सत्य है," जहां "सत्य" एक शून्य, गैर-शून्य, गैर-अपरिभाषित, गैर-गलत, गैर-रिक्त-स्ट्रिंग मान है। :-)
null
यह एक वस्तु नहीं है , यह एक वस्तु संदर्भ है जिसका अर्थ है "कोई वस्तु नहीं"। यह महत्वपूर्ण है, क्योंकि इसका उपयोग होस्ट-प्रदान किए गए इंटरफेस के साथ किया जाता है, जब वे ऑब्जेक्ट संदर्भ प्रदान करते हैं, लेकिन प्रदान करने के लिए एक नहीं है (उदाहरण के लिए, node.nextSibling
जब node
इसके मूल में अंतिम तत्व है, या getElementById
जब उस आईडी के साथ कोई तत्व नहीं है)। इसके लिए मेजबान जिस तकनीक का उपयोग करता है, वह उतनी लचीली नहीं हो सकती, क्योंकि जावास्क्रिप्ट वैरिएबल / प्रॉपर्टी के प्रकारों के बारे में है, इसलिए इसे null
ओब्जेक्ट रिफ (जैसा कि विरोध किया गया undefined
) होना आवश्यक था ।
typeof null
"वस्तु" लौटाने से समझ में आता है। केवल एक और मूल्य जो समझ में आता है वह "अशक्त" होगा, क्योंकि यह निश्चित रूप से कुछ अलग लौटना चाहिए typeof undefined
। null एक शून्य ऑब्जेक्ट संदर्भ का प्रतिनिधित्व करता है, जो कि, बहुत कम से कम, इसका मतलब है कि इसे रखने वाला चर किसी प्रकार के 'ऑब्जेक्ट' के लिए है। अगर यह गलती थी, तो यह एक अच्छी गलती थी। वैसे भी, उत्तर के संबंध में, क्रॉस-विंडो स्क्रिप्टिंग के दौरान के बारे में टिप undefined
= undefined
जानना अच्छा है, विशेष रूप से डीबगिंग उद्देश्यों के लिए।
अंतर सूक्ष्म है।
जावास्क्रिप्ट में एक undefined
वैरिएबल एक वैरिएबल है जिसे कभी घोषित नहीं किया गया, या कभी भी एक मान नहीं सौंपा गया। मान लीजिए कि आप var a;
उदाहरण के लिए घोषित करते हैं, तब a
होगाundefined
, क्योंकि इसे कभी भी कोई मूल्य नहीं दिया गया था।
लेकिन अगर आप असाइन करते हैं a = null;
तो a
अब हो जाएगा null
। जावास्क्रिप्ट null
एक वस्तु है ( typeof null
यदि आप मुझ पर विश्वास नहीं करते हैं तो जावास्क्रिप्ट कंसोल में प्रयास करें), जिसका अर्थ है कि अशक्त एक मूल्य है (वास्तव में भीundefined
में एक मूल्य है)।
उदाहरण:
var a;
typeof a; # => "undefined"
a = null;
typeof null; # => "object"
यह फ़ंक्शन तर्कों में उपयोगी साबित हो सकता है। आप एक डिफ़ॉल्ट मान चाहते हैं, लेकिन शून्य को स्वीकार्य मान सकते हैं। आप किस मामले में कर सकते हैं:
function doSomething(first, second, optional) {
if (typeof optional === "undefined") {
optional = "three";
}
// do something
}
यदि आप optional
पैरामीटर को doSomething(1, 2) then
छोड़ते "three"
हैं doSomething(1, 2, null)
तो वैकल्पिक स्ट्रिंग होगा लेकिन यदि आप पास होते हैं तो वैकल्पिक होगाnull
।
समान ==
और कड़ाई से बराबर ===
तुलना करने वालों के लिए, पहला वाला कमजोर प्रकार का है, जबकि कड़ाई से बराबर भी मानों के प्रकार की जांच करता है। इसका मतलब है कि 0 == "0"
सच लौटेगा; जबकि 0 === "0"
झूठे वापस आ जाएगा, क्योंकि एक संख्या एक स्ट्रिंग नहीं है।
आप के बीच की जाँच करने के लिए उन ऑपरेटरों का उपयोग कर सकते undefined
एक null
। उदाहरण के लिए:
null === null # => true
undefined === undefined # => true
undefined === null # => false
undefined == null # => true
अंतिम मामला दिलचस्प है, क्योंकि यह आपको यह जांचने की अनुमति देता है कि क्या कोई चर अपरिभाषित है या अशक्त है और कुछ नहीं:
function test(val) {
return val == null;
}
test(null); # => true
test(undefined); # => true
इन सवालों के पूरे जवाब के लिए जाने के लिए युक्ति है। यहाँ एक सारांश है:
x
, आप कर सकते हैं:null
सीधे तुलना करके उपयोग कर रहा है ===
। उदाहरण:x === null
undefined
दो बुनियादी तरीकों में से एक है: प्रत्यक्ष तुलना undefined
या typeof
। के लिए विभिन्न कारणों से , मैं पसंद typeof x === "undefined"
।null
और undefined
उपयोग करके ==
और थोड़ा रहस्यमय प्रकार के जबरदस्ती नियमों पर निर्भर x == null
करता है, जिसका मतलब है कि वास्तव में आप क्या चाहते हैं।==
और ===
है कि अगर ऑपरेंड विभिन्न प्रकार के कर रहे हैं, है ===
हमेशा वापस आ जाएगी false
, जबकि ==
एक ही प्रकार का उपयोग करते हुए एक या दोनों ऑपरेंड में परिवर्तित कर देंगे नियम है कि नेतृत्व कुछ थोड़ा unintuitive व्यवहार करने के लिए। यदि ऑपरेंड एक ही प्रकार के होते हैं (जैसे दोनों स्ट्रिंग्स हैं, जैसे कि typeof
ऊपर की तुलना में), ==
और ===
बिल्कुल समान व्यवहार करेंगे।अधिक पढ़ने:
यदि यह शून्य या अपरिभाषित है तो मैं किसी चर की जांच कैसे कर सकता हूं
बस जांचें कि क्या एक चर का इस तरह एक वैध मूल्य है:
if(variable)
यदि चर सम्मिलित नहीं है तो यह सही होगा:
अपरिभाषित
इसका मतलब है कि चर अभी तक intialized नहीं है।
उदाहरण :
var x;
if(x){ //you can check like this
//code.
}
के बराबर होती है (==)
यह केवल चेक वैल्यू है, डेटाटाइप के बराबर है।
उदाहरण :
var x = true;
var y = new Boolean(true);
x == y ; //returns true
क्योंकि यह केवल मान की जाँच करता है।
सख्त बराबर (===)
मान की जाँच करता है और डेटाटाइप समान होना चाहिए।
उदाहरण :
var x = true;
var y = new Boolean(true);
x===y; //returns false.
क्योंकि यह जाँच करता है कि डेटाटाइप x एक आदिम प्रकार है और y एक बूलियन ऑब्जेक्ट है।
विज्ञापन 1. null
वैश्विक वस्तु की संपत्ति के लिए एक पहचानकर्ता नहीं है, जैसे undefined
हो सकता है
विज्ञापन 2. ===
चेक वैल्यू और प्रकार। ==
न (का उपयोग करते हुए तुलना से पहले एक ही प्रकार और बनाया अंतर्निहित रूपांतरण की आवश्यकता होती है .valueOf()
और .toString()
)। यहाँ आपके पास सभी ( src ) हैं:
अगर
== (इसकी उपेक्षा ! = )
=== (इसकी उपेक्षा ! == )
document.all == null
औरdocument.all !== null
अपने (तार्किक) की जांच एक निषेध के लिए है और आप दोनों जे एस पर कब्जा करना चाहते हैं (!) null
और undefined
(अलग-अलग ब्राउज़र आप अलग अलग परिणाम देगा के रूप में) आप कम प्रतिबंधक तुलना का प्रयोग करेंगे: उदाहरण के लिए:
var ItemID = Item.get_id();
if (ItemID != null)
{
//do stuff
}
यह null
और दोनों पर कब्जा करेगाundefined
विभिन्न तर्क के साथ प्रयास करें । आप सत्यापन के लिए सभी चार (4) शर्त के लिए bellow कोड का उपयोग कर सकते हैं, जैसे शून्य नहीं, रिक्त नहीं, अपरिभाषित नहीं और शून्य नहीं केवल जावास्क्रिप्ट और jquery में इस कोड ((- (चर))) का उपयोग करें।
function myFunction() {
var data; //The Values can be like as null, blank, undefined, zero you can test
if(!(!(data)))
{
//If data has valid value
alert("data "+data);
}
else
{
//If data has null, blank, undefined, zero etc.
alert("data is "+data);
}
}
==
और===
अच्छी तरह से वर्णित है ।