जावास्क्रिप्ट में मान और प्रकार की समानता
मान लीजिए कि आप इस तरह से तुलना करना चाहते हैं कि उद्धरण चिह्नों में लिखी संख्या बिना उद्धरण चिह्नों वाली उसी संख्या के बराबर न हो। दूसरे शब्दों में, आप चाहते हैं कि तुलना न केवल मान के आधार पर हो, बल्कि डेटा प्रकार के आधार पर भी हो।
इसके लिए ऑपरेटर == के बजाय
ऑपरेटर === का उपयोग करना चाहिए। निम्नलिखित
उदाहरण में स्ट्रिंग '3' और
संख्या 3 की तुलना करने पर कंडीशन गलत (false) होगी,
क्योंकि चर, हालांकि मान में समान हैं,
लेकिन प्रकार में समान नहीं हैं:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // यह काम करेगा
}
लेकिन दो स्ट्रिंग्स '3' की तुलना करने पर
कंडीशन सही (true) होगी:
if ('3' === '3') {
console.log('+++'); // यह काम करेगा
} else {
console.log('---');
}
इसी तरह संख्याओं की तुलना करने पर भी:
if (3 === 3) {
console.log('+++'); // यह काम करेगा
} else {
console.log('---');
}
ऑपरेटर == और ऑपरेटर
=== के बीच का अंतर तब स्पष्ट होता है जब
मान समान होते हैं लेकिन डेटा प्रकार अलग होता है।
बाकी मामलों में ये ऑपरेटर समान रूप से काम करते हैं।
उदाहरण के लिए, अलग-अलग संख्याओं की तुलना करने पर,
निश्चित रूप से '---' आउटपुट होगा:
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // यह काम करेगा
}
कोड रन किए बिना निर्धारित करें कि कंसोल में क्या आउटपुट होगा:
let test1 = '3';
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
कोड रन किए बिना निर्धारित करें कि कंसोल में क्या आउटपुट होगा:
let test1 = '3';
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
कोड रन किए बिना निर्धारित करें कि कंसोल में क्या आउटपुट होगा:
let test1 = 3;
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
कोड रन किए बिना निर्धारित करें कि कंसोल में क्या आउटपुट होगा:
let test1 = 3;
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
कोड रन किए बिना निर्धारित करें कि कंसोल में क्या आउटपुट होगा:
let test1 = 3;
let test2 = 3;
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}