Javacript तार्किक ऑपरेटरों के लिए शॉर्ट-सर्किट मूल्यांकन का उपयोग करता है ||
और &&
। हालाँकि, यह अन्य भाषाओं के लिए अलग है कि यह अंतिम मूल्य का परिणाम देता है जो ए true
, या false
मान के बजाय निष्पादन को रोक देता है ।
जावास्क्रिप्ट में निम्नलिखित मानों को गलत माना जाता है।
- असत्य
- शून्य
""
(खाली स्ट्रिंग)
- 0
- नेन
- अपरिभाषित
ऑपरेटर की पूर्ववर्ती नियमों को अनदेखा करना , और चीजों को सरल रखना, निम्नलिखित उदाहरण बताते हैं कि कौन सा मूल्यांकन मूल्यांकन रोक दिया, और परिणामस्वरूप वापस आ जाता है।
false || null || "" || 0 || NaN || "Hello" || undefined // "Hello"
पहले 5 मान तक NaN
गलत होते हैं, इसलिए इनका मूल्यांकन बाएं से दाएं तक किया जाता है, जब तक कि यह पहले "Hello"
सत्य मूल्य से पूरा नहीं हो "Hello"
जाता है - जो पूरी अभिव्यक्ति को सच बनाता है, इसलिए आगे कुछ भी मूल्यांकन नहीं किया जाएगा, और अभिव्यक्ति के परिणामस्वरूप वापस आ जाता है। । इसी तरह, इस मामले में:
1 && [] && {} && true && "World" && null && 2010 // null
पहले 5 मान सभी सत्य हैं और इसका मूल्यांकन तब तक किया जाता है जब तक कि यह पहले null
मिथ्या मूल्य ( ) को पूरा न कर दे, जो कि अभिव्यक्ति को गलत बनाता है, इसलिए 2010
अब इसका मूल्यांकन नहीं किया null
जाता है , और अभिव्यक्ति के परिणामस्वरूप वापस आ जाता है।
आपके द्वारा दिया गया उदाहरण असाइनमेंट करने के लिए जावास्क्रिप्ट की इस संपत्ति का उपयोग कर रहा है। इसका उपयोग कहीं भी किया जा सकता है जहां आपको मूल्यों के एक समूह के बीच पहली सच्चाई या मिथ्या मूल्य प्राप्त करने की आवश्यकता होती है। इस कोड के नीचे मूल्य प्रदान करेंगे "Hello"
करने b
के बजाय अगर-किसी और के चेक करने का, के रूप में यह आसान एक डिफ़ॉल्ट मान आवंटित करने के लिए बनाता है।
var a = false;
var b = a || "Hello";
आप नीचे दिए गए उदाहरण को इस सुविधा का शोषण कह सकते हैं, और मेरा मानना है कि यह कोड को पढ़ने में कठिन बनाता है।
var messages = 0;
var newMessagesText = "You have " + messages + " messages.";
var noNewMessagesText = "Sorry, you have no new messages.";
alert((messages && newMessagesText) || noNewMessagesText);
अलर्ट के अंदर, हम जाँचते हैं कि messages
क्या गलत है, और यदि हाँ, तो मूल्यांकन करें और वापस लौटें noNewMessagesText
, अन्यथा मूल्यांकन करें और वापस लौटें newMessagesText
। चूंकि यह इस उदाहरण में गलत है, इसलिए हम noNewMessagesText और अलर्ट पर रुकते हैं "Sorry, you have no new messages."
।
$f=$a or $f=$b or $f=$c; // etc
:। PHP में||
ऑपरेटर और ऑपरेटर दोनों हैंor
, जो एक ही काम करते हैं; हालांकिor
मूल्यांकन के बाद मूल्यांकन किया जाता है जबकि||
पहले मूल्यांकन किया जाता है। यह भी आपको दिलेर शैली प्रदान करता है$a=getSomething() or die('oops');