||
एक logical or है। यह पहला सच्चाई ऑपरेंड * (अंतिम मूल्य मूल्यांकन) देता है। तो
var myHeader = headers || {'Content-type':'text/plain'};
रिटर्न "हेडर" यह truthy है (और अगर यह अशक्त या अपरिभाषित है, कि मूल्य "गलत" में coreced जाता है) है। यदि यह झूठा है, तो यह दूसरा ऑपरेंड देता है। मुझे विश्वास नहीं है कि जावास्क्रिप्ट में इसका एक बहुत ही विशिष्ट नाम है, बस कुछ सामान्य "डिफ़ॉल्ट तर्क मान" जैसा है।
|
bitwise or है। यह एक गणितीय ऑपरेशन है और कुछ पूरी तरह से अलग करता है। वह ऑपरेटर यहां भी समझ में नहीं आता है (और परिणामस्वरूप यह आमतौर पर केवल 0
उत्पन्न करेगा)। जहां भी आपने देखा, यह निश्चित रूप से एक टाइपो था, और वे तार्किक या उपयोग करने के लिए मतलब था।
तो उस पहले विधि (a = b || c
) के साथ जाएं।
* "तार्किक या" को "तार्किक संयोजन" या "समावेशी संयोजन" के रूप में भी जाना जाता है। जावास्क्रिप्ट, सभी प्रोग्रामिंग भाषाओं की तरह, short-circuit evaluation का उपयोग करके तार्किक वक्तव्य का मूल्यांकन करता है। तार्किक-अभिव्यक्तियों के साथ, यह सच्चाई के लिए प्रत्येक ऑपरेंड का मूल्यांकन करता है और पहले सत्य पर रोकता है (और वह मान देता है)। यदि कोई सच्चाई ऑपरेंड नहीं है, तो उसे अभी भी उन सभी के माध्यम से जाना होगा, इसलिए यह आखिरी ऑपरेंड लौटाता है, फिर भी आखिरी बार इसका मूल्यांकन किया जाता है। तार्किक और (& &) पहले झूठी ऑपरेंड पर रोककर समान रूप से संक्षिप्त सर्किट है।
स्रोत
2012-03-26 01:20:38
आप चाहते हैं '||' –
टाइपो, यह '||' – qwertymk
संभव डुप्लिकेट होना चाहिए [क्या जावास्क्रिप्ट में कोई "शून्य सहकारी" ऑपरेटर है?] (http://stackoverflow.com/questions/476436/is-there-a-null-coalescing-operator-in-javascript) –