Thursday, 15 July 2010

Is checking for null against a string in jQuery using two equals signs bad practice? -


JSLint यह झंडे:

  if ($ (stringToClean) .html () == शून्य)  

... चेतावनी के साथ " नल, 0, सत्य, झूठी, या खाली स्ट्रिंग रूपांतरण की अनुमति देने वाली स्ट्रिंग के साथ तुलना करें (=== का उपयोग करें या == ) "

मेरी समझ यह है कि यदि मेरे पास" === "होता तो यह केवल अशक्त की जांच करेगा, लेकिन अगर मेरे पास (जैसा मैं करता हूं)" == "यह भी जांच करेगा

यदि मेरी धारणा सही है, तो "==" वास्तव में ऐसे कई मामलों में वांछनीय हो सकता है, नहीं?

< ऑपरेटर === चेक मान

== ऑपरेटर चेक मान, Em> और टाइप करें।

उदाहरण के लिए:

  5 == "5" - & gt; सच 5 === "5" - & gt;  नल  को समझने के लिए  अपरिभाषित  पर विचार करना आवश्यक है। 

  टाइपफ (रिक्त) - & gt; ऑब्जेक्ट टाइपफ (अपरिभाषित) - & gt; अपरिभाषित  

लेकिन

  नल == अपरिभाषित - & gt; आपके उदाहरण में, मान लें कि आप किसी भी मैच के चयनकर्ता पर  html ()  विधि लागू करने का प्रयास करते हैं: 

< पूर्व> $ ('# nonExistentDiv')। Html ()

परिणाम अपरिभाषित है। इसका अर्थ है कि:

  $ ('# nonExistentDiv')। Html () === नल - & gt; गलत $ ('# nonExistentDiv')। Html () == नल - & gt; यदि आप एक मौजूदा लेकिन रिक्त DIV तत्व के साथ प्रयास करते हैं तो आपको खाली स्ट्रिंग मिलती है:  
  $ ('# emptyDiv')। Html () =  
= नल - & gt; झूठी $ ('# emptyDiv')। Html () == 0 - & gt; सच (intresting!) $ ('# EmptyDiv')। Html () === "" - & gt; इसलिए:

  • यदि आप देखना चाहते हैं कि कोई स्ट्रिंग रिक्त है, तो आपको का उपयोग करना चाहिए अगर (myString == null)
  • यदि आप देखना चाहते हैं कि कोई स्ट्रिंग खाली है, तो यदि (myString === "")
  • यदि आप यह जांचना चाहते हैं कि कोई स्ट्रिंग वास्तव में " कुछ शामिल है "आप यदि (myString)
देख सकते हैं

No comments:

Post a Comment