Equality Operators in JavaScript – दो Variables आपस में एक दूसरे के बराबर हैं या नहीं, इस बात को Check करने के लिए हमें Equality Operators को Use करना होता है। ये सभी Comparison Strings, Numbers व Boolean Values के साथ सामान्य तरीके से काम करता है लेकिन जब हम Objects के साथ Equality Operators को Use करते हैं, तब स्थिति थोडी जटिल हो जाती है। ECMAScript हमें दो प्रकार के Equality Operators प्रदान करता है, जो निम्नानुसार हैं:
Equal and Not Equal
Equal Operator को ECMAScript में Double Equal Sign (==) द्वारा Represent किया जाता है और ये Operator उस स्थिति में true Return करता है, जब दोनों Operands Equal होते हैं।
जबकि Not-Equal Operator को Exclamation Point के साथ Equal Sign (!=) द्वारा Represent किया जाता है और ये Operator उस स्थिति में true Return करता है जब दोनों Operands Equal नहीं होते।
ये दोनों ही Operators Comparison करने से पहले Operands का Conversion करते हैं, जिसे Type Coercion कहा जाता है। जब Conversion Perform हो रहा होता है, Equal व Not-Equal Operators निम्न Rules को Follow करते हैं:
- यदि दोनों में से कोई Operand Boolean Value हो, तो ये Operator Equality Check करने से पहले Operand को Numeric Value में Convert करता है।
- यदि दोनों में से कोई Operand String हो व दूसरा Operand Number हो, तो ये Equality Operator String Operand को Number में Convert करने के बाद Equality Check करता है।
- यदि दोनों में से कोई भी Operand कोई Object हो, तो उस Object का valueOf() Method Call होता है, जो Object से Primitive Value Return करने के बाद उस Value के साथ Equality Check करता है। यदि Object का valueOf() Method Available न हो, तो toString() Method Call होता है।
ये Operators Comparison करते समय निम्न Rules को भी Follow करते हैं:
- null व undefined Equal होते हैं।
- null व undefined Equality Checking के लिए किसी भी अन्य Value में Convert नहीं होते।
- यदि दोनों में से कोई भी एक Operand NaN हो, तो Equality Operator false Return करता है जबकि Non-Equality Operator true Return करता है।
- भले ही दोनों Operands NaN हो, फिर भी Equality Operator false Return करता है क्योंकि NaN, NaN के बराबर नहीं होता।
- यदि दोनों Operands Objects हों, तो दोनों इस बात के लिए Compare होते हैं कि दोनों Same Objects हैं या नहीं। यदि दोनों Operands समान Objects को Point कर रहे हों, तो Equality Operator true Return करता है अन्यथा दोनों Equal नहीं होते यानी दोनों अलग-अलग Object को Point कर रहे होते हैं।
उपरोक्त सभी स्थितियों को हम निम्न सारणी द्वारा आसानी से समझ सकते हैं:
Expression | Value |
null == undefined | true |
“NaN” == NaN | false |
5 == NaN | false |
NaN == NaN | false |
NaN != NaN | true |
false == 0 | true |
true == 1 | true |
true == 2 | false |
undefined == 0 | false |
null == 0 | false |
“5” == 5 | true |
Identically Equal and Not Identically Equal
ये दोनों Operators Exactly Equality व Not Equality Operators की तरह ही काम करते हैं। अन्तर केवल इतना है कि ये Equality Comparison से पहले Conversion नहीं करते।
Identically Equal Operator को तीन Equal Sign (===) से Represent किया जाता है और ये केवल उसी स्थिति में true Return करता है, जबकि दोनों Operands बिना Conversion किए हुए Equal हों।
उपरोक्त Statements में पहला Statement Equality Operator को Use कर रहा है जो String को Number में Convert करता है, जिससे String “55” एक Number 55 में Convert हो जाता है और Number 55 दूसरे Number 55 के बराबर होता है। फलस्वरूप Comparison से true Return होता है।
जबकि दूसरा Statement बिना Conversion किए हुए Directly Comparison करता है, जिससे false Return होता है क्योंकि String “55” व Number 55 दोनों एक समान नहीं होते।
Not Identically Equal को एक Exclamation Mark व दो Equal Sign (!==) के साथ Represent किया जाता है और ये Operator उसी स्थिति में true Return करता है, जब बिना Comparison किए हुए दोनों Operands Not Equal हो। उदाहरण के लिए –
उपरोक्त Codes में पहला Statement Not Equal Operator को Use कर रहा है, जिससे पहले String “55” एक Number 55 में Convert होता है और फिर Comparison होता है कि 55 बराबर नहीं है 55 के। फलस्वरूप false Return होता है क्योंकि Number 55 दूसरे Number 55 के बराबर ही होता है।
जबकि दूसरे Statement में Identically Not Equal Operator को Use किया गया है और ये Operator बिना String “55” को Number में Convert किए हुए Comparison करता है। फलस्वरूप true Return होता है क्योंकि String 55 बराबर नहीं होता Number 55 के।
चूंकि Identically Equal व Identically Not Equal Operator सामान्यत: उसी प्रकार से काम करते हैं, जैसा हम सोंचते हैं, इसलिए इन्हें Equal व Not Equal Operators की तुलना में प्राथमिकता देनी चाहिए। इन्हें Use करने पर पूरे JavaScript Program में Data Type की Integrity बनी रहती है व किसी भी Variable का Data Type Conversion होने के बाद Comparison नहीं होता। फलस्वरूप कोई Data Type से Related कोई Complex Bug पैदा नहीं होता।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Advance JavaScript in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Advance JavaScript in Hindi | Page: 669 | Format: PDF