我遇到的JavaScript一個奇怪的範圍問題(見JSFiddle):的Javascript全局變量範圍問題
var someGlobal = 3;
function someF() {
// undefined issue
alert(someGlobal);
var someGlobal = 5;
// Displays 5
alert(someGlobal);
}
function someF2() {
// Displays 3, why?
alert(someGlobal);
}
someF();
someF2();
爲什麼不使用Javascript拋出一個不確定的問題someF2()
? someF2()
怎麼可以訪問someGlobal
和someF()
不是?我怎樣才能確保一個全局變量可以在函數中訪問?
備註:
在這兩種情況下,該功能啓動通過調用alert(someglobal)
,爲什麼一個函數拋出一個不確定的問題,其他的呢?
+1爲最佳答案,但更多地描述全局變量被函數中的局部變量覆蓋:D –
它不會被覆蓋,它會被屏蔽。 – Quentin
好吧,你可以給我一點關於兩者的解釋!我還沒有對它做過研究!只有那個函數會被覆蓋或不被覆蓋? –