मुझे पता है कि नीचे दो तरीके हैं जावास्क्रिप्ट में यह जांचने के लिए कि एक चर नहीं है null
, लेकिन मैं भ्रमित हूं जो उपयोग करने के लिए सबसे अच्छा अभ्यास है।
क्या मुझे करना चाहिए:
if (myVar) {...}
या
if (myVar !== null) {...}
मुझे पता है कि नीचे दो तरीके हैं जावास्क्रिप्ट में यह जांचने के लिए कि एक चर नहीं है null
, लेकिन मैं भ्रमित हूं जो उपयोग करने के लिए सबसे अच्छा अभ्यास है।
क्या मुझे करना चाहिए:
if (myVar) {...}
या
if (myVar !== null) {...}
जवाबों:
वे समकक्ष नहीं हैं। पहले खंड निम्नलिखित निष्पादित करेंगे if
बयान करता है, तो myVar
है truthy (अर्थात् मूल्यांकन करता है true
एक सशर्त में) है, जबकि दूसरे खंड निष्पादित करेंगे अगर myVar
किसी भी अन्य की तुलना में मूल्य है null
।
केवल मान जो जावास्क्रिप्ट में सत्य नहीं हैं, वे निम्नलिखित हैं (उर्फ मिथ्या मूल्य):
null
undefined
0
""
(खाली स्ट्रिंग)false
NaN
यहां बताया गया है कि अगर कोई वैरिएबल NULL नहीं है तो आप कैसे टेस्ट कर सकते हैं:
if (myVar !== null) {...}
ब्लॉक को निष्पादित किया जाएगा यदि myVar शून्य नहीं है .. यदि myVar अपरिभाषित या गलत 0
या NaN
या कुछ और है तो इसे निष्पादित किया जाएगा ।
("")
और अपरिभाषित के लिए जाँच नहीं करता है । संदर्भ के रूप में मेरी
इस पोस्ट को पढ़ें: http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/
यह सामान्य रूप से जावास्क्रिप्ट के लिए कुछ अच्छा सुझाव है, लेकिन एक बात यह उल्लेख करता है कि आपको अशक्त के लिए जाँच करनी चाहिए:
if(myvar) { }
इसमें यह भी उल्लेख किया गया है कि क्या 'गलत' माना जाता है जिसे आप महसूस नहीं कर सकते हैं।
if(myVar) { code }
केवल तब निष्पादित नहीं किया जाएगा, जब myVar
यह बराबर हो: false, 0, "", null, undefined, NaN
या आपने कभी भी चर को परिभाषित नहीं किया है myVar
(फिर इसके अतिरिक्त कोड निष्पादन और अपवाद को छोड़ दें)।if(myVar !== null) {code}
केवल तब ही निष्पादित नहीं किया जाएगा जब myVar
आप समान हों null
या आपने कभी इसे परिभाषित नहीं किया हो (अपवाद को फेंकता है)।यहाँ आपके पास सभी ( src ) हैं
अगर
== (इसकी उपेक्षा ! = )
=== (इसकी उपेक्षा ! == )
एक और संभावित परिदृश्य है जो मैं अभी सामने आया हूं।
मैंने एक अजाक्स कॉल किया और एक स्ट्रिंग प्रारूप में डेटा को शून्य के रूप में वापस मिला। मुझे इसे इस तरह से जांचना था:
if(value != 'null'){}
तो, नल एक स्ट्रिंग था जो वास्तव में अशक्त होने के बजाय "अशक्त" पढ़ता था।
संपादित करें: यह समझा जाना चाहिए कि मैं इसे नहीं बेच रहा हूं जिस तरह से इसे किया जाना चाहिए। मेरे पास एक परिदृश्य था जहां यह एकमात्र तरीका था जो कि किया जा सकता था। मुझे यकीन नहीं है कि क्यों ... शायद बैक-एंड लिखने वाला लड़का गलत तरीके से डेटा पेश कर रहा था, लेकिन परवाह किए बिना, यह वास्तविक जीवन है। यह निराशा होती है कि यह किसी ऐसे व्यक्ति द्वारा देखा गया है जो समझता है कि यह बिलकुल सही नहीं है, और फिर किसी व्यक्ति द्वारा मतदान किया जाना वास्तव में मदद करता है।
null
स्ट्रिंग्स के खिलाफ तुलना करने के बजाय अपने मूल्य को पार्स करें ।
value = JSON.parse(value)
और फिर सरल और उचित value != null
परीक्षण का उपयोग करना चाहिए
यदि myVar
यह शून्य है तो यदि ब्लॉक अन्य वार को निष्पादित नहीं करता है तो यह निष्पादित होगा।
if (myVar != null) {...}
'null'
, बल्कि विशेष मूल्य है null
।
आप जिन दो सशर्त बयानों को यहां सूचीबद्ध करते हैं, वे एक दूसरे से बेहतर नहीं हैं। आपका उपयोग स्थिति पर निर्भर करता है। आपके पास 2 उदाहरण में एक टाइपो है। विस्मयादिबोधक चिह्न के बाद केवल एक बराबर चिन्ह होना चाहिए।
1 उदाहरण यह निर्धारित करता है कि myVar में मान सही है या {{}} के अंदर कोड निष्पादित करता है
दूसरा उदाहरण मूल्यांकन करता है कि क्या myVar बराबर नहीं है और यदि यह मामला सत्य है तो यह आपके कोड को {}} के अंदर निष्पादित करेगा
मेरा सुझाव है कि अधिक तकनीकों के लिए सशर्त बयानों पर गौर करें। एक बार जब आप उनसे परिचित हो जाते हैं, तो आप यह तय कर सकते हैं कि आपको कब उनकी आवश्यकता है।
=
महत्वपूर्ण है और प्रश्न पर भारी पड़ता है। शायद आप जावास्क्रिप्ट में !==
और ===
ऑपरेटरों के अस्तित्व से अवगत नहीं हैं ?