var a = "global";
//version 1
function changeGlobal(){
alert(a); //why is 'a' undefined here?
if(a){
var a = "local";
alert(a);
}
}
//version 2
function changeGlobal(){
alert(a); //why is 'a' 'global' here? what diff does 'var a="local"' make?
if(a){
//var a = "local";
alert(a);
}
}
changeGlobal();
問題是內聯。幫助我瞭解變量範圍。
這個問題不是重複的,即「變量提升」,即「全局範圍」,表現出實現異常,儘管它是相關的。 – 2012-11-17 03:27:23
@jAndy有很多JS的問題,我試着在看這對夫婦之前試過。另外,我正在閱讀'Alexei White'的書'javascript',並且他從來沒有談論過懸掛。 –
爲什麼你的函數具有相同的名稱,爲什麼'var a ='local''在後者中被註釋掉了?我們應該如何確定哪些函數被稱爲變量被設置的順序? –