क्या कुछ मुझे बता सकते हैं कि जावास्क्रिप्ट में निम्न कोड क्यों सत्य है?जावास्क्रिप्ट में हमेशा सत्य (शून्य> शून्य) क्यों सच होता है?
console.log(true > null); //returns true
क्या कुछ मुझे बता सकते हैं कि जावास्क्रिप्ट में निम्न कोड क्यों सत्य है?जावास्क्रिप्ट में हमेशा सत्य (शून्य> शून्य) क्यों सच होता है?
console.log(true > null); //returns true
null
इस मामले में false
की तरह है, जो 0
एक संख्या के रूप है। true
एक संख्या के रूप में 1
है।
1
0
से बड़ा (>
) बड़ा है।
उत्तर के लिए धन्यवाद। मैं सोच रहा था कि शून्य === 0 झूठी क्यों है? तब मुझे एहसास हुआ कि इसे मजबूर होना जरूरी है। तो उन लोगों के लिए जिन्हें पूर्ण प्रमाण की आवश्यकता है, कोशिश करें + null === 0 जो सच साबित करने का मूल्यांकन करता है कि वास्तव में शून्य को 0 तक ले जाया गया है। बस सोचा कि यह दूसरों की मदद कर सकता है। – GrantVS
हो सकता है क्योंकि true = 1
जहां null = 0
वे संख्या में बदल दिए जाते null
0
और true
देता 1
http://ecma-international.org/ecma-262/5.1/#sec-11.8.5
यदि यह मामला नहीं है देता है कि दोनों प्रकार (पिक्सल) स्ट्रिंग है और टाइप (py) स्ट्रिंग,
- NX ToNumber (पिक्सल) बुला का नतीजा हो चलो है तो। क्योंकि पीएक्स और पीई आदिम मूल्य मूल्यांकन आदेश महत्वपूर्ण नहीं हैं।
- ny कॉल टूम्बर (पीई) का परिणाम बनें।
Number(null) //0
Number(true) //1
कोड गलत है, तुम क्या करने की जरूरत है:
console.log(true > typeof null);
आपको ऐसा क्यों लगता है कि यह गलत है? – Esailija
जावास्क्रिप्ट पृष्ठभूमि में प्रकार बलात्कार का एक बहुत करता है और परिणाम का एक बहुत आप aren मिल जाएगा ' टी उपयोगी (देखें http://wtfjs.com/)।
इस मामले में, सत्य जो 1 के रूप में coerced है शून्य से अधिक है जो 0 से coerced है। चूंकि 1 0 से अधिक है परिणाम परिणाम सच है।
तो ऑपरेंड में से एक बूलियन है, बूलियन संकार्य 1 यदि यह सच है और +0 में बदल जाती है अगर यह गलत है।
MDN से।
तुलना ऑपरेटर ">" दोनों को बाएं और दाएं तरफ संख्याओं में परिवर्तित करने के लिए मजबूर करता है। संख्या (सत्य) 1 है, संख्या (शून्य) 0 है, तो पैराथेसिस में क्या है "1> 0" के रूप में लिया जाता है, जो परिणाम में हमेशा सत्य होता है।
पीछे क्या हो रहा है यह है कि तुलनात्मक ऑपरेटरों (>
इस मामले में) तुलना करने से पहले प्रकार जबरदस्ती करते हैं। ToPrimitive
करते समय, सत्य को 1 तक ले जाया जाता है, और 0 तक शून्य हो जाता है। आप यहां विवरण देख सकते हैं कि ऑपरेटर वास्तव में कैसे काम करते हैं here
हां क्योंकि शून्य एक झूठी अभिव्यक्ति (फिर * झूठी *) है और तुलना ऑपरेटर इसे _number_ (फिर सत्य = 1 और झूठी = 0) में परिवर्तित कर देगा। –
** @ एड्रियानो ** इसे उत्तर के रूप में पोस्ट करें बस यही है! – elclanrs
http://stackoverflow.com/questions/801032/null-object-in-javascript – diEcho