2012-07-11 14 views

उत्तर

6

यह जांच करता है कि vNaN है:

if(v !== v){ 
    //'v' is NaN here 
} 

standard से:

अगर एक मूल्य के एक्स एक NaN है ECMAScript कोड का परीक्षण करने के लिए एक विश्वसनीय तरीका प्रपत्र की एक अभिव्यक्ति है एक्स! == एक्स। परिणाम सही होगा अगर एक्स और केवल अगर एक्स एक NaN है।

क्यों निर्मित isNaN() का उपयोग न करें?

उत्तर सरल है: "isNaN() पर्याप्त विश्वसनीय नहीं है।"। यहाँ मामले हैं, जब isNaN() में विफल रहा हो जाएगा:

isNaN("NaN")   //true 
isNaN(undefined)  //true 
+0

जाहिर है जिस तरह से ES6 में यह करने के लिए है 'Object.is (obj, NaN)': http://wiki.ecmascript.org/doku.php आईडी = सद्भाव: उदाहरण –

+0

@OtotoAllmendinger बहुत रोचक। जानकारी के लिए धन्यवाद। – Engineer

1

यह के लिए "न एक नंबर" का परीक्षण करती है: NaN !== NaNtrue

के बराबर होती है MDN से:

NaN का प्रारंभिक मूल्य नहीं-ए-नंबर - संख्या के मान के रूप में ही। NaN। आधुनिक ब्राउज़रों में, NaN एक कॉन्फ़िगर करने योग्य, गैर-लेखन योग्य संपत्ति है। यहां तक ​​कि जब यह मामला नहीं है, तब भी इसे ओवरराइड करने से बचें।

प्रोग्राम में NaN का उपयोग करना दुर्लभ है। यह लौटा हुआ मूल्य है जब मैथ फ़ंक्शन (Math.sqrt(-1)) विफल हो जाते हैं या जब कोई फ़ंक्शन पार्स करने का प्रयास करता है तो कोई संख्या (parseInt("blabla")) विफल हो जाती है।

संबंधित मुद्दे