var 宣告的變數,作用域是當前 function
沒有宣告的變數,直接賦值的話, 會自動建立變數
但作用域是全域性的.
//-----------------
function doSth() {
a = "AAA";
}
doSth(); // 執行一次 doSth
alert(a); // 可以看到 "AAA"
如果用了 var
var a = "AAA";
alert(a); // 出錯!!! 變數未定義, 因為 doSth 中宣告的變數作用域只是 doSth 函式.
另外,如果 函式套函式,還會使情況變得更加複雜
--------------------------------------------------------
函式定義中,宣告的函式引數作用域都是函式本身的
如果,在引數宣告中出現 var , 屬於語法錯誤
var 宣告的變數,作用域是當前 function
沒有宣告的變數,直接賦值的話, 會自動建立變數
但作用域是全域性的.
//-----------------
function doSth() {
a = "AAA";
}
doSth(); // 執行一次 doSth
alert(a); // 可以看到 "AAA"
//-----------------
如果用了 var
//-----------------
function doSth() {
var a = "AAA";
}
doSth(); // 執行一次 doSth
alert(a); // 出錯!!! 變數未定義, 因為 doSth 中宣告的變數作用域只是 doSth 函式.
//-----------------
另外,如果 函式套函式,還會使情況變得更加複雜
--------------------------------------------------------
函式定義中,宣告的函式引數作用域都是函式本身的
如果,在引數宣告中出現 var , 屬於語法錯誤