सबसे पहले मैं यह उल्लेख करना चाहता हूं कि मुझे पता है कि कैसे isNaN()और Number.isNaN()काम करते हैं। मैं पढ़ रहा हूँ निश्चित गाइड डेविड फ्लानागन से और वह करता है, तो मूल्य है, इसकी जांच करने के लिए एक उदाहरण देता है NaN:
x !== x
इस का परिणाम देगा trueयदि और केवल यदि xहै NaN।
लेकिन अब मेरे पास एक सवाल है: वह सख्त तुलना का उपयोग क्यों करता है? क्योंकि ऐसा लगता है कि
x != x
उसी तरह व्यवहार करता है। यह दोनों संस्करणों का उपयोग करने, या मैं जावास्क्रिप्ट में कुछ मूल्य (रों) कि वापस आ जाएगी याद आ रही है सुरक्षित है trueके लिए x !== xऔर falseके लिए x != x?
NaNएक अद्वितीय प्रकार नहीं है, यह एक संख्या है। यह एक अद्वितीय मूल्य है जो स्वयं के बराबर नहीं है।
===NaN के साथ बात करते हैं कि NaN खुद के बराबर नहीं है। वह "गलत नहीं है," वह एक शिक्षण अभ्यास के रूप में कर रहा है, यह दर्शाता है कि यह काम नहीं करता है।
!==चेक से अधिक!=चेक पसंद करता है। जहां तक मैं जानता हूं कि कोई अन्य मूल्य नहीं है जहांx != x। लेकिन जावास्क्रिप्ट डेवलपर्स के दो अलग-अलग समूह हैं: जो लोग पसंद करते हैं!=और जो पसंद करते हैं!==, वे गति, स्पष्टता, स्पष्टता, आदि के लिए हो सकते हैं