我該怎麼做?在javascript中使用全局變量
我的代碼是這樣的:
var number = null;
function playSong(artist,title,song,id)
{
alert('old number was: '+[number]+'');
var number = '10';
alert(''+[number]+'');
}
第一個提醒總是返回「老字號是:」不10.如果不是在第二函數調用兩個警報返回10?
我該怎麼做?在javascript中使用全局變量
我的代碼是這樣的:
var number = null;
function playSong(artist,title,song,id)
{
alert('old number was: '+[number]+'');
var number = '10';
alert(''+[number]+'');
}
第一個提醒總是返回「老字號是:」不10.如果不是在第二函數調用兩個警報返回10?
通過每段時間設定數=「10」,您聲明number
作爲一個局部變量在使用var
。試試這個:
var number = null;
function playSong(artist,title,song,id)
{
alert('old number was: '+[number]+'');
number = '10';
alert(''+[number]+'');
}
刪除函數前面的數字。你被
var number = 10;
創建一個局部變量,你所需要的僅僅是
number = 10;
的問題是,你聲明名爲number
功能的內部新的變量。這個新變量隱藏全局變量number
,所以行只分配給這個新的局部變量。
您需要從var number = 10
中刪除var
關鍵字。
和C一樣,你需要在函數/方法之外定義你的變量來使它成爲全局變量。
var number = 0;
function playSong(artist,title,song,id)
{
alert('old number was: '+[number]+'');
number = '10';
alert(''+[number]+'');
}
你也可以在window.number之類的任何函數中,在刪除var裏面的函數之後訪問它。
讓我詳細解釋,在Javascript中聲明全局變量和局部變量
var firstNumber=5;//local variable
secondNumber=10; //global variable or window object
當你的程序是這樣的
var number =1;
function playSong() {
alert(number);
var number =2;
alert(number);
}
按照JavaScript的編譯器變量的所有聲明/初始化將移動到頂部這個概念叫做吊裝。 鏈接: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
}
該死你們大家!感謝所有的答案如此之快。 – ian 2009-07-22 18:53:58
你爲什麼寫 alert('old number was:'+ [number] +''); 而不是 alert('old number was:'+ number); 因爲它會提醒一個數組裏面有一個項目,而不是項目(數字) – 2009-07-22 19:19:26
嗯不知道但它的作品。我不認爲它會查找任何數組,因爲我將空白空間放在右側+'';或者可能不是我不知道。 – ian 2009-07-22 19:28:13