2012-04-27 10 views
23

संभव डुप्लिकेट:
What does “options = options || {}” mean in Javascript?दो पाइप प्रतीक (या) इस जावास्क्रिप्ट लाइन में

मैं जे एस में यह देखा है:

item = item || {}; 

मैं यह अनुमान लगा रहा हूँ एक टर्नरी ऑपरेटर के कुछ बदलाव लेकिन वास्तव में क्या करता है?

+6

हम आज रात downvoting या सिर्फ सामान्य मूर्ख लोग घर में कुछ जावास्क्रिप्ट snobbs हो रही है! ? – benhowdle89

+1

@ मार्टिन। और आप क्या सुझाव देंगे कि मैं यह जवाब प्राप्त करने के लिए खोज सकता था ... – benhowdle89

+0

अच्छा सवाल। मैं थोड़ी देर के लिए खोज कर रहा हूं और अंत में [इसे मिला] (http://stackoverflow.com/questions/9579262/logical-operator-in-javascript-0-stands-for-boolean-false)। लेकिन ईमानदार होने के लिए, जैसा मैंने सोचा उतना आसान नहीं है। मेरे सभी डाउनवॉट्स को वापस कर –

उत्तर

28
(expr1 || expr2) 

"रिटर्न expr1 अगर यह सच में बदला जा सकता, अन्यथा, expr2 देता है।"

source

तो जब expr1 है (या करने के लिए मूल्यांकन करता है) इन 0,"",false,null,undefined,NaN में से एक है, तो expr2 दिया जाता है, अन्यथा expr1 दिया जाता है

2

यह के बराबर:

if(!item){ item = {}; } 
+1

तो यदि आइटम गलत है तो आइटम एक खाली वस्तु है? – benhowdle89

+2

'झूठा' या 'अपरिभाषित' या कोई अन्य झूठा मूल्य, हाँ –

+2

यह नीचे मतदान क्यों किया गया था ?? –

7

आइटम मौजूद है, तो आइटम के लिए सेट आइटम या {}

+4

है जो आप नीचे वोट के लायक नहीं हैं। –

+0

@ शेख हाँ, जवाब गलत नहीं है, लेकिन मुझे लगता है कि यह बहुत खराब है। कोलिंक और अजैक्स के यहां सबसे अच्छे जवाब हैं। विशेष रूप से कोलिंक अपरिवर्तनीय –

+0

@ ह्वी क्यों नहीं है? । –

11

यह अतिरेक कहा जाता है के लिए सेट है, लेकिन इस मामले में यह एक अच्छी बात है। । मूल रूप से, अगर item परिभाषित नहीं है (या अन्यथा falsy (false, 0, "" ...), तो हम इसे एक डिफ़ॉल्ट मान देना

सबसे आम उदाहरण घटनाओं में है:

evt = evt || window.event; 
+4

आप योग्य नहीं हैं एक नीचे वोट। –

संबंधित मुद्दे