2013-05-10 5 views
8

मैं एक जावास्क्रिप्ट उदाहरणयह संचार क्या है: my_var = my_var || 69

my_var = my_var || 69 

मुझे लगता है यह जाँच करने के लिए my_var मौजूद है, अगर 69 को my_var सेट नहीं ऐसा तो नहीं है इसका मतलब में इस देखा था? क्या इस पर कोई दस्तावेज है, Google/SO खोज के रूप में प्रतिनिधित्व करना बहुत मुश्किल है, क्या कोई मुझे दस्तावेज़ों या डुप्लिकेट क्यूए की दिशा में इंगित कर सकता है?

+0

आप उन सवाल मिल सकती है दिलचस्प: http://stackoverflow.com/q/894860/1169798 और http://stackoverflow.com/q/894860/1169798 – Sirko

+0

खबरदार है कि इस के बाद से एक बुरा विचार है my_var के झूठे मूल्यों के लिए काम नहीं करता है, वे अधिलेखित हो जाएंगे। – flup

+0

यह जांच नहीं करता है कि 'my_var' मौजूद है या नहीं। यदि 'my_var' मौजूद नहीं है, तो आपको 'ReferenceError: my_var परिभाषित नहीं किया गया है'। "Falsy" के लिए –

उत्तर

12

काफी आसान जे एस कंसोल में प्रयास करने के लिए (उदाहरण के 69 उपयोग नहीं किया, कि सिर्फ मुझे मूर्ख जा रहा है)।

var my_var 
my_var = my_var || 69 
//69 

var my_var = 5 
my_var = my_var || 69 
//5 

आप चर केवल अगर यह वर्तमान में एक falsy मूल्य ले जा रहा है की स्थापना कर रहे हैं।

Falsy values in JS are:

  1. false
  2. null
  3. undefined
  4. रिक्त स्ट्रिंग ''
  5. संख्या 0
  6. संख्या NaN
+2

+1। यदि लोग my_var पहले से सेट नहीं किया गया था, तो लोग अक्सर डिफ़ॉल्ट मान सेट करने के लिए इसका उपयोग करते हैं, लेकिन यह ध्यान रखना महत्वपूर्ण है कि यह इस चर के लिए 0 या NaN स्वीकार्य मानों के रूप में जल्द से जल्द काम नहीं करेगा। – Shautieh

0

इसे अधिकांश समय "डिफ़ॉल्ट" कहा जाता है। || के बाद मान को "डिफ़ॉल्ट" मान। ऑपरेशन == का उपयोग करते हुए if कथन के साथ आप क्या करते हैं, इसकी तुलना में ढीला तुलना है।

कुछ भी falsy नहीं की तरह:

  • झूठी
  • रिक्त स्ट्रिंग ('')
  • अशक्त
  • अपरिभाषित
  • NaN सी है सच्चाई पर विचार किया। यदि पहला मान इनमें से कोई नहीं है, तो यह एक असाइन किया गया है। यदि ऐसा है, तो दाईं ओर मान असाइन किया गया है।

0

||or ऑपरेटर के दो ऑपरेंड (बाएं और दाएं) हैं। यह जांचता है कि बायीं ओर का मूल्य सच्चाई है और यदि ऐसा होता है तो वेरिएबल को असाइन करता है अन्यथा वेरिएबल को सही हाथ मान निर्दिष्ट करता है।

var my_var = false; 
my_var = my_var || true; 
//true 
संबंधित मुद्दे