2009-07-22 42 views
6

में वैश्विक चर का उपयोग करके मैं यह कैसे कर सकता हूं?जावास्क्रिप्ट

मेरे कोड कुछ इस तरह है:

var number = null; 

function playSong(artist,title,song,id) 
{ 
    alert('old number was: '+[number]+''); 


    var number = '10'; 

    alert(''+[number]+''); 
} 

पहले चेतावनी हमेशा रिटर्न 'पुराने नंबर था:' और नहीं 10 नहीं यह दूसरा समारोह फोन पर दोनों अलर्ट पर 10 वापसी करना चाहिए?

+0

Ya'll अरे समारोह उपयोग अंदर वैश्विक चर का उपयोग करने की जरूरत है! सभी उत्तरों के लिए बहुत तेज़ धन्यवाद। – ian

+1

आप अलर्ट क्यों लिखते हैं ('पुराना नंबर था:' + [संख्या] + ''); और अलर्ट ('पुराना नंबर था:' + संख्या); क्योंकि यह एक आइटम के अंदर एक सरणी को अलर्ट करेगा, आइटम (संख्या) –

+0

हम्म डुनो नहीं बल्कि यह काम करता है। मुझे नहीं लगता कि यह किसी भी सरणी की तलाश करेगा क्योंकि मैं दाएं तरफ खाली जगह पर हूं; ''; या शायद मुझे नहीं पता। – ian

उत्तर

15

var का उपयोग कर जब एक स्थानीय चर के रूप में हर बार संख्या = '10', आप की घोषणा कर रहे हैं number की स्थापना करके। इस प्रयास करें:

var number = null; 

function playSong(artist,title,song,id) 
{ 
    alert('old number was: '+[number]+''); 


    number = '10'; 

    alert(''+[number]+''); 
} 
+0

फिर उस फंक्शन प्ले साइट पर उस चरणीय साइट को कैसे एक्सेस करें और मान 10 प्राप्त करें? – johnsnails

+0

@johnsnails वैरिएबल को फ़ंक्शन के बाहर घोषित किया गया है, इसलिए जब संख्या = 10 असाइन करें तो वास्तव में वैश्विक चर निर्दिष्ट किया जाता है लेकिन यदि हम साइड फ़ंक्शन में var number = '10' का उपयोग करते हैं तो उसके पास स्थानीय दायरा होगा, हमें मूल्य 10 नहीं मिलेगा समारोह के बाहर। –

11

अपने फ़ंक्शन में संख्या के सामने var को हटाएं। आप द्वारा

var number = 10; 

एक स्थानीय चर पैदा कर रहे है कि तुम क्या जरूरत है तो बस

number = 10; 
3

समस्या यह है कि आप समारोह के अंदर number नामक एक नया चर घोषणा कर रहे है। यह नया चर वैश्विक number चर को छुपाता है, इसलिए लाइन number = 10 केवल इस नए स्थानीय चर को निर्दिष्ट करता है।

आपको var number = 10 से var कीवर्ड को हटाने की आवश्यकता है।

1

सी की तरह, आपको इसे वैश्विक बनाने के लिए फ़ंक्शन/विधि के बाहर अपने चर को परिभाषित करने की आवश्यकता है।

var number = 0; 

function playSong(artist,title,song,id) 
{ 
    alert('old number was: '+[number]+''); 
    number = '10'; 
    alert(''+[number]+''); 
} 
+0

एक ही मिनट में उसी उत्तर को पोस्ट करने के लिए आश्वस्त है। –

+2

दरअसल, 'var' के बिना कोई परिभाषा वैश्विक चर होगी, भले ही इसे परिभाषित किया गया हो। जावास्क्रिप्ट डरावना हो सकता है। –

+0

आप हर दिन कुछ नया सीखते हैं। –

1

आप अंदरूनी फ़ंक्शन को हटाने के बाद window.number जैसे किसी भी फ़ंक्शन में इसे एक्सेस भी कर सकते हैं।

0

मुझे विस्तार से बताएं जावास्क्रिप्ट में वैश्विक चर और स्थानीय चर घोषित करने के लिए करते हैं

var firstNumber=5;//local variable 
secondNumber=10; //global variable or window object 

जब अपने कार्यक्रम इस

var number =1; 
function playSong() { 
    alert(number); 
    var number =2; 
    alert(number); 
} 

प्रति जावास्क्रिप्ट संकलक चर के सभी घोषणा/आरंभीकरण के रूप में की तरह है इस अवधारणा को शीर्ष पर ले जाया जाएगा जिसे होस्टिंग कहा जाता है। लिंक: https://www.w3schools.com/js/js_hoisting.asp

संकलक कार्यक्रम के अनुसार निष्पादित करेंगे

तरह
var number; //Declaration will move to top always in Javascript 
number=1; 
function playSong() { 
    var number; 
    alert(number); //output : undefied - This is local variable inside the function 
    number =2; 
    alert(number); // output : 2 
} 

आप window.number

var number =1; 
function playSong() { 
    var number =2; 
    alert(window.number); // output : 1 -From Global variable 
    alert(number); // output : 2 -From local variable 
} 
संबंधित मुद्दे