मुझे इन्हें कैसे समझना चाहिए?जावास्क्रिप्ट तुलना प्रश्न (शून्य> = 0)
null>0
> false
null==0
> false
null>=0
> true
मुझे इन्हें कैसे समझना चाहिए?जावास्क्रिप्ट तुलना प्रश्न (शून्य> = 0)
null>0
> false
null==0
> false
null>=0
> true
संबंधपरक ऑपरेटर (>=
और <=
), प्रकार बलात्कार (ToPrimitive
) करते हैं, Number
का संकेत प्रकार के साथ, सभी रिलेशनल वर्तमान ऑपरेटरों इस व्यवहार है ।
आप The Abstract Relational Comparison Algorithm में इस प्रक्रिया के आंतरिक विवरण देख सकते हैं।
दूसरी ओर, Equals operator (==
), एक संकार्य है अगर null
यह केवल रिटर्न true
यदि अन्य या तो null
या undefined
है, कोई सांख्यिक प्रकार बलात्कार किया जाता है।
null == undefined; // true
null == null; // true
चेक The Abstract Relational Comparison Algorithm में इस प्रक्रिया के भीतरी विवरण।
अनुशंसित लेख:
ठीक है। ">", "<" शून्य के रूप में शून्य का मूल्यांकन करें। "==" नहीं। धन्यवाद। – Eonil
अन्य दिलचस्प बात यह है कि एक> = बी का मूल्यांकन नहीं किया जाता है ((ए> बी) || (ए == बी)) लेकिन जैसा! (एक <बी)।यह बताता है कि क्यों शून्य> = 0> या == जैसा नहीं है। – bschandramohan
जब अशक्त एक अंकीय experession इसे 0 पर evalutes, जो आपके बताते हैं प्रयोग किया जाता है> और> = मामलों।
== अधिक सूक्ष्म है। अनौपचारिक रूप से, शून्य शून्य के समान नहीं है, इसलिए यह समझ में आता है।
[यह] (http://bclary.com/2004/11/07/#a-11.8) इन ऑपरेटरों का उपयोग करने में किए गए कदमों को समझने के लिए एक बहुत ही उपयोगी लिंक है। अभी भी पागल तर्क की व्याख्या नहीं करता है, लेकिन meh ... – Stephen
सापेक्ष तुलना ऑपरेटर एक संख्यात्मक संदर्भ दर्शाते हैं, इसलिए उन मामलों में (>
, >=
) null
को एक संख्या (शून्य) में परिवर्तित कर दिया गया है।
==
मामले में, हालांकि, दोनों मानों को बूलियन मानों के रूप में माना जाता है, और जावास्क्रिप्ट को नहीं लगता कि null
किसी अन्य "गलत" मानों के बराबर होना चाहिए। यह अजीब तरह का है। ==
के लिए समानता एल्गोरिदम विशेष मामलों का एक समूह है, और null
उनमें से एक है। यह केवल ==
है और undefined
है।
दिलचस्प! ऐसा लगता है जैसे जावास्क्रिप्ट को >==
और <==
जैसे कुछ नए पहचान ऑपरेटर की आवश्यकता है। हालांकि मुझे यकीन नहीं है कि >
और <
के संख्यात्मक प्रभाव दिए जाने पर, अधिक समझदारी होगी।
यह उम्मीद परिणाम देता है ...
(null > 0 || null === 0);
'अशक्त <= 0' == सच भी है। – Oded
क्या दुभाषिया/ब्राउज़र? –
वाह ............ – Eonil