(1 < NaN)
false
और undefined
(जावास्क्रिप्ट में) क्यों देता है?जावास्क्रिप्ट में (1 <NaN) क्यों झूठा है?
"11.8.5 सार रिलेशनल तुलना एल्गोरिदम" में यह कहता है कि यदि किसी भी मान NaN (ToPrimitive और ToNumber के बाद जो मेरे दृश्य में NaN को प्रभावित नहीं करना चाहिए) परिणाम undefined
है।
एफएफ और क्रोम में मैं मिलता है:
console.log(1 < NaN);
// false
कि क्यों है?
+1 एक प्रश्न में spec उद्धृत करने के लिए +1। :-) – RobG
आपको निश्चित रूप से जावास्क्रिप्ट की झूठी/NaN/0/अपरिभाषित/""/शून्य समस्याओं में देखना चाहिए। यह बेहद असंगत है और इसकी सबसे गंभीर त्रुटियों में से एक है (अन्यथा काफी अच्छी) भाषा। –
@ एसएफ: और यदि यह वास्तव में सख्त था, तो लोग * इसके बजाय * शिकायत करेंगे। :-) नियम वास्तव में सभी बुरे नहीं हैं, और वास्तव में इस विशेष उदाहरण के पास झूठी/NaN/0/अपरिभाषित/""/शून्य चीज़ से कोई लेना देना नहीं है। यह और अधिक है कि विनिर्देश में यह खंड है कि संबंध कैसे काम करते हैं, लेकिन फिर आपको यह देखने के लिए कहीं और देखना होगा कि उद्धृत खंड में काम करने के बाद, वास्तविक ऑपरेटर ऐसा करता है। –