isUndefined()
फ़ंक्शन के लिए बस कोई आवश्यकता नहीं है। इस के पीछे कारण ECMAScript specification में समझाया गया है:
(ध्यान दें कि NaN मूल्य कार्यक्रम अभिव्यक्ति NaN द्वारा निर्मित है।) कुछ कार्यान्वयन में, बाहरी कोड विभिन्न नहीं-एक के बीच एक अंतर पता लगाने में सक्षम हो सकता है -नंबर मूल्य, लेकिन ऐसा व्यवहार कार्यान्वयन-निर्भर है; ECMAScript कोड के लिए, सभी NaN मान एक दूसरे से से अलग नहीं हैं।
isNaN()
समारोह का पता लगाने के लिए कि क्या कुछ NaN
है क्योंकि समानता ऑपरेटरों काम नहीं करते (आपकी अपेक्षानुसार, नीचे देखें) उस पर एक तरीके के रूप में कार्य करता है। एक NaN
मूल्य एक और NaN
मूल्य के बराबर नहीं है:
NaN === NaN; // false
undefined
पर दूसरी ओर अलग है, और undefined
मूल्यों से अलग पहचाना हैं:
undefined === undefined; // true
आप कैसे जानने के लिए उत्सुक हैं, तो isNaN()
फ़ंक्शन काम करता है, ईसीएमएस्क्रिप्ट विनिर्देश also explains this for us भी:
- संख्या संख्या को संख्या (संख्या) दें।
- ReturnIfAbrupt (num)।
- यदि संख्या NaN है, तो वापस लौटें।
- अन्यथा, झूठी वापसी करें।
अगर एक मूल्य के एक्स एक NaN प्रपत्र एक्स की एक अभिव्यक्ति है है ECMAScript कोड का परीक्षण करने के लिए एक विश्वसनीय तरीका! == एक्स परिणाम सच यदि और केवल यदि एक्स एक NaN है किया जाएगा।
NaN !== NaN; // true
100 !== 100; // false
var foo = NaN;
foo !== foo; // true
स्रोत
2014-10-17 13:45:31
अच्छा प्रश्न है। लेकिन मुझे लगता है कि यह प्रोग्रामर एसई (वैचारिक बात) में बेहतर है। इसके अतिरिक्त, अंडरस्कोर की तरह उपयोगिता libs ['_.isUndefined'] है (http://underscorejs.org/#isUndefined) – Joseph
स्टैक ओवरफ्लो में बहुत निराश है। इस सवाल को पूरी तरह से पढ़ने के लिए कोई भी परेशान नहीं है। – simonzack
@ सिमोनज़ैक यह एक मूर्ख सवाल है। क्यों * एक अनिश्चित() 'होना चाहिए? क्यों नहीं 'isnull() 'भी है? या 'EEmptyString() 'है? या उस मामले के लिए '17()' है? – Pointy