2011-11-09 10 views
10

संभव डुप्लिकेट:
Difference between using var and not using var in JavaScriptजावास्क्रिप्ट में "var" क्या करता है? कभी-कभी असाइनमेंट का हिस्सा क्यों होता है?

var foo = 1; 

foo = 1; 

दो लाइनों के ऊपर के बीच क्या अंतर है?

+2

आप किस जावास्क्रिप्ट ट्यूटोरियल/पुस्तक का उपयोग कर रहे हैं? (यह एक मौलिक है ... विषय।) –

उत्तर

18

असल में, var एक चर दिखाता है और आप इसे एक ही समय में असाइन कर सकते हैं।

var के बिना, यह चर को असाइन कर रहा है। असाइन करना या तो मौजूदा चर को असाइन करेगा या उस नाम का वैश्विक चर बना देगा और फिर इसे असाइन करेगा।

कार्यों के बाहर, इसका मतलब है कि कोई वास्तविक अंतर नहीं है (प्रिंसिपल में) यदि चर पहले से मौजूद नहीं है। दोनों उस मामले में वैश्विक चर foo बनाते हैं।

एक समारोह में, एक बड़ा अंतर है। पहला यह कार्य करने के लिए एक परिवर्तनीय स्थानीय बनाता है चाहे वह कहीं और मौजूद है या नहीं।

दूसरा वैश्विक चर बना देगा यदि यह अस्तित्व में नहीं है, या यदि यह मौजूद है तो बस मूल्य को बदलें।

कोड को मॉड्यूलर जितना संभव हो सके रखने के लिए, आपको हमेशाvar का उपयोग करना चाहिए जब तक कि आप विशेष रूप से मौजूदा वैश्विक चर को बदलना नहीं चाहते हैं। इसका अर्थ है var के साथ कार्यों के बाहर सभी ग्लोबल्स घोषित करना और सभी स्थानीय लोगों को var के साथ घोषित करना।

+0

एक समारोह के बाहर भी एक अंतर है। आप यह obj.prop कर सकते हैं, आप var obj.prop नहीं कर सकते! –

+0

@ चिंतन, इस तथ्य के साथ और अधिक संभावना है कि 'obj.prop' वास्तव में एक नया चर नहीं हो सकता है, बल्कि यह मौजूदा' obj' चर की एक संपत्ति है। – paxdiablo

1

पहले मामले में foo उसी स्कोप में उपलब्ध होगा जहां इसे परिभाषित किया गया है, यानी यह स्थानीय चर होगा। दूसरे मामले में foo वैश्विक स्तर पर स्थित वैश्विक चर है।

5

foo = 1foo को अंतिम दायरे में रखा जाएगा जहां foo परिभाषित किया गया था, या वैश्विक दायरा। var foo = 1 वैरिएबल को मौजूदा दायरे में रखेगा (यानी वर्तमान फ़ंक्शन)।

+0

@pst: आपका क्या मतलब है? – Ryan

+0

अपडेटेड भाषा बहुत बेहतर है :) –

+0

@pst: ठीक है, मैं मूल रूप से आपको यह बताने जा रहा था कि: "मैंने पोस्ट करने के बाद कुछ 3 सेकंड संपादित किए, क्षमा करें :)" लेकिन फिर भी मैं आपका मतलब था http://jsfiddle.net/minitech/sEkYt/ – Ryan

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