2011-07-30 9 views
23

संभव डुप्लिकेट:
Difference between using var and not using var in JavaScriptजेएस में "var" आवश्यकता कब है?

कुछ समय, मैं लोगों को इस

for(var i=0; i< array.length; i++){ 
//bababa 

} 

कर लेकिन मैं यह भी लोगों को यह कर देखें ... देखा

for(i=0; i< array.length; i++){ 
//bababa 

} 

दो के बीच अलग क्या है? धन्यवाद।

उत्तर

50

var कीवर्ड "जरूरत" कभी नहीं किया गया है। हालांकि यदि आप इसका उपयोग नहीं करते हैं तो आप जिस वैरिएबल को घोषित कर रहे हैं वह वैश्विक दायरे में प्रकट होगा (यानी window ऑब्जेक्ट पर एक संपत्ति के रूप में)। आमतौर पर यह वही नहीं है जो आप चाहते हैं।

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

for(var i=0; i< array.length; i++){ 
    //bababa 
} 

यदि आप चाहिए, तो इस तरह या::

जब कोड लिखने, तो आप इस वाक्य रचना को प्राथमिकता देनी चाहिए

var i; 
for(i=0; i< array.length; i++){ 
    //bababa 
} 

इसे इस तरह कर रहा:

for(i=0; i< array.length; i++){ 
    //bababa 
} 

। .. वैश्विक दायरे में i नामक एक चर बना देगा। अगर कोई और वैश्विक i वैरिएबल का उपयोग भी कर रहा है, तो आपने अभी अपने चर को ओवरराइट कर लिया है।

+0

नमस्ते, आपके उदाहरण में आपको ग्लोबल वैरिएबल को कहीं और वैश्विक स्तर पर घोषित करने के लिए पंजीकरण करना होगा, या जावा के इंजन द्वारा विविध रूप से वैरिएबल वैरिएबल के रूप में घोषित किए गए कुछ भी नहीं हैं? –

+0

@Chin - 'var' के साथ घोषित नहीं किया गया कुछ भी जावास्क्रिप्ट में वैश्विक चर के रूप में समझा जाएगा, कोई विशेष पंजीकरण की आवश्यकता नहीं है। – aroth

+0

अच्छी टिप @aroth के लिए धन्यवाद। मेरे चर को स्थानीय रखने से मुझे Google क्रोम में डिबगिंग करते समय कोड के माध्यम से आसानी से चलने में भी मदद मिलती है। – blackhawk

0

तकनीकी रूप से, आप इसे उपयोग करने की आवश्यकता नहीं, जावास्क्रिप्ट सिर्फ अपने रास्ते पर ख़ुशी से जाना होगा - भले ही आप न उन्हें समय से पहले घोषित अपने वेरिएबल का उपयोग करके।

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

var n = 23; 
function functThat() 
{ 
    var n = 32; // "local" scope 
} 
+0

नीचे मतदान की व्याख्या करने की देखभाल? –

+1

मैंने इसे कम नहीं किया, लेकिन मेरा अनुमान है क्योंकि कथन सिर्फ गलत हैं। आप वास्तव में वैश्विक वैरिएबल पॉप अप नहीं करना चाहते हैं और यादृच्छिक रूप से बदल रहे हैं। हाँ, वर्जीनिया, जावास्क्रिप्ट वास्तव में बेकार है। लेकिन कम करने में मदद करने के लिए कि आप अपने कोड को कम छोटी गाड़ी बनाने के लिए हर जगह var का उपयोग करें। पठनीय के साथ वास्तव में कुछ भी करने के लिए नहीं है। – Keith

+5

प्रश्न पूछता है कि var का उपयोग करने के बीच अंतर और var का उपयोग नहीं करने के बीच क्या अंतर है, लेकिन यह उत्तर केवल यह बताता है कि वास्तव में क्या अंतर है, यह बताने के बिना इसका उपयोग कब किया जाए। – Quentin

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