ECMAScript बूलीन ऑपरेटर

बूलीन ऑपरेटर बहुत महत्वपूर्ण हैं, वे कार्यक्रम भाषा के सुचारू संचालन को संभव बनाते हैं。

बूलीन ऑपरेटर तीन हैं: NOT, AND और OR。

ToBoolean ऑपरेशन

विभिन्न लॉजिकल ऑपरेटर सीखने से पहले, हमें पहले ECMAScript-262 v5 नियमावल में वर्णित ToBoolean ऑपरेशन के बारे में जानना चाहिए。

सांकेतिक ऑपरेशन ToBoolean उसके पैरामीटर को नीचे दिए गए नियमों के अनुसार लॉजिकल मूल्य में बदलता है:

पैरामीटर क़िस्म परिणाम
अनिर्दिष्ट false
नुल false
बूलीन परिणाम इनपुट पैरामीटर के बराबर है (बदले नहीं जाता)
नंबर यदि पैरामीटर +0, -0 या NaN है, तो परिणाम फॉल्स रहेगा; अन्यथा ट्रू होगा。
स्ट्रिंग यदि पैरामीटर रिक्त शब्द शृंखला है, तो परिणाम फॉल्स रहेगा; अन्यथा ट्रू होगा。
ऑब्जेक्ट true

लॉजिक NOT ऑपरेटर

ECMAScript में, NOT लॉजिकल ऑपरेटर C और Java में के समान है, जो अष्टधर्मी (अष्टवीं अक्षर) (!) से प्रदर्शित होता है।

NOT और OR और AND लॉजिकल ऑपरेटरों के अलावाNOT लॉजिकल ऑपरेटर द्वारा वापस दिया जाने वाला निश्चित रूप से Boolean मूल्य है.

NOT लॉजिकल ऑपरेटर का व्यवहार निम्नलिखित है:

  • यदि आयाम ऑब्जेक्ट है, तो false बदलता है
  • यदि आयाम अंक 0 है, तो true बदलता है
  • यदि आयाम 0 के अलावा कोई भी अंक है, तो false बदलता है
  • यदि आयाम null है, तो true बदलता है
  • यदि आयाम NaN है, तो true बदलता है
  • यदि आयाम undefined है, तो त्रुटि होती है

सामान्यतया, यह ऑपरेटर चक्र को नियंत्रित करने के लिए उपयोग किया जाता है:

var bFound = false;
var i = 0;
while (!bFound) {
  if (aValue[i] == vSearchValues) {
    bFound = true;
  }
    i++;
  }
}

इस उदाहरण में, Boolean परिमाण (bFound) का उपयोग खोज के सफलता को दर्शाने के लिए किया जाता है। जब दोष के डाटा आइटम को खोजा जाता है, bFound को true कर दिया जाता है, !bFound को false कर दिया जाता है, जिससे रन व्हाइल चक्र से बाहर निकला जाता है。

ECMAScript चेतावनी के Boolean मूल्य को जाँच करते समय, NOT लॉजिकल ऑपरेटर का उपयोग किया जा सकता है। इससे करने के लिए एक पद के भीतर दो NOT ऑपरेटरों का उपयोग करना होगा। जो भी आयाम हो, पहला NOT ऑपरेटर Boolean मूल्य देता है। दूसरा NOT ऑपरेटर उस Boolean मूल्य को नकारता है, इससे वास्तविक Boolean मूल्य प्राप्त होता है。

var bFalse = false;
var sRed = "red";
var iZero = 0;
var iThreeFourFive = 345;
var oObject = new Object;
document.write("bFalse का लॉजिकल मूल्य है " + (!!bFalse));
document.write("sRed का लॉजिकल मूल्य है " + (!!sRed));
document.write("iZero का लॉजिकल मूल्य है " + (!!iZero));
document.write("iThreeFourFive का लॉजिकल मूल्य है " + (!!iThreeFourFive));
document.write("oObject का लॉजिकल मूल्य है " + (!!oObject));

परिणाम:}

bFalse का लॉजिकल मान false है
sRed का लॉजिकल मान true है
iZero का लॉजिकल मान false है
iThreeFourFive का लॉजिकल मान true है
oObject का लॉजिकल मान true है 

लॉजिकल एण्ड ऑपरेशन

ECMAScript में, लॉजिकल एण्ड ऑपरेशन संकेतक (&&) के रूप में प्रयोग किया जाता है:

उदाहरण के लिए:

var bTrue = true;
var bFalse = false;
var bResult = bTrue && bFalse;

लॉजिकल एण्ड ऑपरेशन संबंधी सत्य तालिका लॉजिकल एण्ड ऑपरेशन के व्यवहार को वर्णित करती है:

ऑपरेंड 1 ऑपरेंड 2 परिणाम
true true true
true false false
false true false
false false false

लॉजिकल एण्ड ऑपरेशन के ऑपरेंड किसी भी प्रकार के हो सकते हैं, न केवल Boolean मान।

यदि कोई ऑपरेंड मूलभूत Boolean मान नहीं है, तो लॉजिकल एण्ड ऑपरेशन बेलीन बॉलीन मान वापस नहीं देता है:

  • यदि एक ऑपरेंड वस्तु है और दूसरा Boolean मान है, तो वस्तु वापस किया जाता है।
  • यदि दोनों ऑपरेंड वस्तु हैं, तो दूसरी वस्तु वापस किया जाता है।
  • यदि कोई ऑपरेंड null है, तो null वापस किया जाता है।
  • यदि कोई ऑपरेंड NaN है, तो NaN वापस किया जाता है।
  • यदि कोई ऑपरेंड undefined है, तो त्रुटि होगी。

Java में लॉजिकल एण्ड ऑपरेशन के समान, ECMAScript में लॉजिकल एण्ड ऑपरेशन एक सरल ऑपरेशन है, जिसे 'लॉजिकल एण्ड' कहा जाता है, यदि पहला ऑपरेंड फल निर्धारित करता है, तो दूसरा ऑपरेंड गणना नहीं की जाएगा। लॉजिकल एण्ड ऑपरेशन के लिए, यदि पहला ऑपरेंड false है, तो दूसरा ऑपरेंड का मान कितना भी हो, परिणाम true नहीं हो सकता।

इस उदाहरण को ध्यान में रखें:

var bTrue = true;
var bResult = (bTrue && bUnknown);	// त्रुटि होगी
alert(bResult);			// यह पटल नहीं चलेगा

इस कोड में लॉजिकल एण्ड ऑपरेशन के दौरान त्रुटि होगी क्योंकि वारियबल bUnknown अनिर्दिष्ट है। वारियबल bTrue का मान true है क्योंकि लॉजिकल एण्ड ऑपरेशन वारियबल bUnknown को गणना करता है। ऐसा करने से त्रुटि होगी क्योंकि bUnknown का मान undefined है और यह लॉजिकल एण्ड ऑपरेशन के लिए नहीं उपयोगी है।

यदि इस उदाहरण को संशोधित किया जाए और पहला संख्या false रखा जाए, तो त्रुटि नहीं होगी:

var bFalse = false;
var bResult = (bFalse && bUnknown);
alert(bResult);			// 'false' आउटपुट

इस कोड में, स्क्रिप्ट लॉजिकल एण्ड ऑपरेशन के फलस्वरूप वाली वैशिष्ट्य रखता है, जो 'false' शब्द है। यदि वारियबल bUnknown का मान undefined है, तो यह गणना नहीं की जाएगी क्योंकि पहले ऑपरेंड का मान false है।

सूचना:लॉजिकल AND ऑपरेटर के उपयोग के दौरान, इसकी सरल गणना विशेषता को याद रखना चाहिए。

लॉजिकल OR ऑपरेटर

ECMAScript में की लॉजिकल OR ऑपरेटर जैसे Java में, दो लट लिंक (||) द्वारा प्रस्तुत है:

var bTrue = true;
var bFalse = false;
var bResult = bTrue || bFalse;

नीचे की ट्रू टेबल लॉजिकल OR ऑपरेटर के व्यवहार को वर्णित करती है:

ऑपरेंड 1 ऑपरेंड 2 परिणाम
true true true
true false true
false true true
false false false

लॉजिकल AND ऑपरेटर के समान, यदि कोई ऑपरेंड Boolean मान नहीं है, तो लॉजिकल OR ऑपरेटर निश्चित रूप से Boolean मान नहीं वापस करता है:

  • यदि कोई ऑपरेंड ऑब्जेक्ट है और ऑब्जेक्ट के बाले के बाले का मान false है, तो उस ऑब्जेक्ट को वापस किया जाता है。
  • यदि दोनों ऑपरेंड ऑब्जेक्ट हैं, तो पहले ऑब्जेक्ट वापस किया जाता है。
  • यदि अंतिम ऑपरेंड null है और अन्य ऑपरेंड का मान false है, तो null वापस किया जाता है。
  • यदि अंतिम ऑपरेंड NaN है और अन्य ऑपरेंड का मान false है, तो NaN वापस किया जाता है。
  • यदि कोई ऑपरेंड undefined है, तो त्रुटि होगी。

लॉजिकल AND ऑपरेटर के समान, लॉजिकल OR ऑपरेटर भी एक सरल ऑपरेटर है। लॉजिकल OR ऑपरेटर के लिए, यदि पहला ऑपरेंड का मान true है, तो दूसरा ऑपरेंड गणना नहीं किया जाता।

उदाहरण के लिए:

var bTrue = true;
var bResult = (bTrue || bUnknown);
alert(bResult);			// "true" आउटपुट

इसके पहले के उदाहरण के समान, वेरियेबल bUnknown अपरिभाषित है। हालांकि, वेरियेबल bTrue के बाले के बाले का मान true है, इसलिए bUnknown नहीं गणना किया जाता है, इसलिए आउटपुट "true" है।

यदि bTrue को false कर दिया जाए, तो त्रुटि होगी:

var bFalse = false;
var bResult = (bFalse || bUnknown);	// त्रुटि होगी
alert(bResult);			// इस बात को नहीं करेगा