JavaScript में == और === ऑपरेटर्स का अंतर
JavaScript में == (लूज़ इक्वलिटी) और === (स्ट्रिक्ट इक्वलिटी) दो अलग-अलग तुलना ऑपरेटर्स हैं। मुख्य अंतर यह है कि == केवल मान की तुलना करता है (टाइप कन्वर्जन के बाद), जबकि === मान और डेटा टाइप दोनों की तुलना करता है बिना किसी टाइप कन्वर्जन के।
a) == ऑपरेटर (लूज़ इक्वलिटी जांच)
== ऑपरेटर दो मानों की तुलना करते समय टाइप कन्वर्जन (टाइप कास्टिंग) करता है। यदि मान समान हैं लेकिन टाइप अलग हैं, तो भी यह true लौटाता है।
उदाहरण
<html> <body> <p id="demo"></p> <script>
var x = 5;
var y = "5";
var z = 6;
document.getElementById("demo").innerHTML =
(x == y) + "<br>" + (x == z);
</script> </body> </html>
आउटपुट
true false
b) === ऑपरेटर (स्ट्रिक्ट इक्वलिटी जांच)
=== ऑपरेटर कोई टाइप कन्वर्जन नहीं करता। यह तभी true लौटाता है जब मान और डेटा टाइप दोनों समान हों।
उदाहरण
<html> <body> <p id="demo"></p> <script>
var x = 5;
var y = "5";
var z = 5;
document.getElementById("demo").innerHTML =
(x === y) + "<br>" + (x === z);
</script> </body> </html>
आउटपुट
false true
सारांश तालिका
| एक्सप्रेशन | परिणाम | कारण |
|---|---|---|
5 == "5" | true | टाइप कन्वर्जन के बाद मान समान |
5 === "5" | false | टाइप अलग (number vs string) |
5 === 5 | true | मान और टाइप दोनों समान |
null == undefined | true | विशेष नियम |
null === undefined | false | टाइप अलग |
सर्वोत्तम अभ्यास: हमेशा === का उपयोग करें ताकि अप्रत्याशित टाइप कन्वर्जन से बचा जा सके और कोड अधिक पूर्वानुमानित बने।