函式作用域
以var開頭宣告的變數為函式作用域
範例
1. var a = 10;
2. var b = "local";
變數提升
Javascript沒有區域作用域變數
if(false){
var a = 10;
}
相當於
var a;
if(false){
a = 10;
}
為了不產生混淆,有些人會將函式變數放在最前面,以凸顯其作用域
全域作用域
其他不以var開頭的變數為全域作用域,程式所有地方都看得見
範例
1. g = "global";
全域物件
全域變數事實上為全域物件的屬性
g = "abc";
相當於
window.g = "abc"; //一般瀏覽器
global.g = "abc"; //nodejs
除了函式庫提供者外,一般使用者請儘量以var來宣告變數,不要汙染全域物件