जावास्क्रिप्ट के विरोधाभास को उजागर करना: क्यों "0" तुलना में गलत है लेकिन यदि कथनों में गलत है
जावास्क्रिप्ट में, आदिम का व्यवहार " 0" डेवलपर्स के लिए एक पहेली बन गया है। जबकि तार्किक ऑपरेटर जैसे "==" 0 "को असत्य के बराबर करते हैं, "0" "यदि" स्थितियों में सत्य के रूप में व्यवहार करता है।
तुलना विरोधाभास
कोड नीचे तुलनात्मक विरोधाभास प्रदर्शित किया गया है:
"0" == false // true
false == "0" // true
इस परिदृश्य में, जावास्क्रिप्ट अपने "सच्चाई" और "गलत" मानों के आधार पर "0" को गलत पर मजबूर करता है। "0", "NaN", "शून्य", और अपरिभाषित जैसे मानों को मिथ्या माना जाता है, जबकि अन्य सत्य हैं।
यदि कथन विसंगति है
हालाँकि, स्थिति जब "0" का उपयोग "if" कथन में किया जाता है तो यह पहेली बन जाता है:
if ("0") console.log("ha") // ha
मजबूर होने के बावजूद तुलनाओं में असत्य के लिए, "0" का मूल्यांकन "यदि" स्थितियों में सत्य के रूप में किया जाता है। ऐसा इसलिए है क्योंकि जावास्क्रिप्ट में "if" कथन "0" सहित सभी गैर-रिक्त स्ट्रिंग्स को सत्य मानते हैं।
सत्यता तालिकाएँ
इस व्यवहार को समझने के लिए, हम जावास्क्रिप्ट सत्यता तालिकाओं का उल्लेख कर सकते हैं। वे तुलना (==) और "अगर" कथन (सच्चाई) स्थितियों में उनकी सत्यता/गलत स्थिति के आधार पर मूल्यों को वर्गीकृत करते हैं:
Value | तुलना | यदि कथन |
---|---|---|
Truthy | truth | true |
झूठा/झूठा | झूठा | झूठा |
"0" (झूठा) | झूठा | true |
निष्कर्ष
जावास्क्रिप्ट में "0" का विरोधाभास तुलना में सत्यता की विभिन्न व्याख्याओं से उत्पन्न होता है (= =) और "यदि" कथन (सत्य)। यह एक सूक्ष्म लेकिन महत्वपूर्ण अंतर है जिसके बारे में डेवलपर्स को अप्रत्याशित परिणामों से बचने के लिए जागरूक होना चाहिए। सर्वोत्तम अभ्यास के रूप में, सटीक मूल्यांकन सुनिश्चित करने के लिए तुलना के दौरान सख्त समानता (===) का उपयोग करने की सलाह दी जाती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3