Attacklab.wmd_env.buttons=Attacklab.wmd_env.buttons||_4;
|| इस मामले में करो?
हमले में _4 जोड़ता है जो Attacklab.wmd_env.buttons है?|| क्या करता है ऑपरेटर करते हैं?
Attacklab.wmd_env.buttons=Attacklab.wmd_env.buttons||_4;
|| इस मामले में करो?
हमले में _4 जोड़ता है जो Attacklab.wmd_env.buttons है?|| क्या करता है ऑपरेटर करते हैं?
||
जावास्क्रिप्ट में ऑपरेटर बाईं ओर मान देता है यदि वह मान false
पर मूल्यांकन नहीं करता है, अन्यथा यह दाईं ओर मान देता है।
Mozilla's Core JavaScript 1.5 Reference से:
expr1 || expr2
रिटर्नexpr1
अगर यह सच करने के लिए परिवर्तित किया जा सकता है; अन्यथा,expr2
देता है। इस प्रकार, जब बूलियन मानों के साथ उपयोग किया जाता है, तो||
सही होता है यदि कोई ऑपरेंड सत्य है; अगर दोनों झूठे हैं, तो झूठी वापसी होती है।
इसलिए, इस मामले में, अगर Attacklab.wmd_env.buttons
एक मूल्य नहीं है, यह _4
के लिए मूल्य तय करता है।
यह अजीब बात है कि एमडीसी बल्कि संदिग्ध "रिटर्न एक्सप्र 1 का उपयोग करता है अगर इसे ** सच में परिवर्तित किया जा सकता है"। यह वास्तव में "रूपांतरित करने में सक्षम" के बारे में नहीं है, यह किस मूल्य अभिव्यक्ति रिटर्न के बारे में है। – kangax
तो Attacklab.wmd_env.buttons
null
या undefined
है, यह डिफ़ॉल्ट मान _4
करने के लिए सेट कर दिया जाएगा।
यह
if(!Attacklab.wmd_env.buttons)
Attacklab.wmd_env.buttons = _4;
यह डिफ़ॉल्ट मान प्रदान करने के लिए अच्छा है लेखन का एक आधुनिक तरीका है। ध्यान रखें कि न केवल null
और undefined
सशर्त ट्रिगर करेंगे, लेकिन 0
, false
और ''
, यानी बूलियन संदर्भों में false
माना जाता है।
|| ऑपरेटर जांचता है कि अभिव्यक्ति के बाईं ओर प्रदान किया गया मान गलत है (एक बूलियन संदर्भ में)। यदि ऐसा है तो यह अभिव्यक्ति के दाहिने तरफ से संकेतित वैकल्पिक मान देता है। अन्यथा यह मूल मूल्य देता है।
इसलिए उदाहरण के लिए निम्नलिखित कोड एक डिफ़ॉल्ट मान के लिए 'फू' स्थापित करेगा अगर यह रिक्त है:
Foo = Foo || "Default Value"
यह कभी कभी वालों ऑपरेटर कहा जाता है। यह रूबी और पर्ल जैसे अन्य भाषाओं में समर्थित है। सी # है ?? ऑपरेटर जो एक ही काम करता है।
तो, यह जवाब वह जानता है कि इसे क्या कहा जाता है, और अन्य लैंगगू इसका क्या उपयोग करते हैं, और सी # में भी विभिन्न वाक्यविन्यास ... और वह अभी भी नहीं जानता कि यह क्या करता है। – Beska
अच्छा बिंदु, शायद मुझे अभी एक टिप्पणी छोड़नी चाहिए थी। वैसे भी, मेरा जवाब अपडेट कर दिया गया है। सही नाम के लिए –
+1! कोई अन्य SO प्रश्न/उत्तर ऐसा नहीं करना चाहते थे ... मुझे Xquery में समतुल्य खोजने में मदद मिली (यह $ foo: = ($ foo, "default value") [1] उत्सुक है जो किसी भी व्यक्ति के लिए है)। –
कृपया शीर्षक को ठीक करें। – rkb
वाह ने शीर्षक को सही करने के 7 प्रयास किए ... – Pool