4 回答

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
這里有一個(gè)地方需要注意,函數(shù)內(nèi)部聲明變量的時(shí)候,一定要使用var命令。如果不用的話,你實(shí)際上聲明了一個(gè)全局變量!
test();
function test()
{
i=1;
}
alert(i);
你試試,i前面加 var 和不加時(shí)候的區(qū)別就知道了.

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
沒錯(cuò) JavaScript是語言強(qiáng)度比較弱,可以聲明也可不聲明。
不管是 參數(shù)聲明 還是 變量的聲明 都是一樣的,都是因?yàn)镴avaScript是語言強(qiáng)度問題,說到 區(qū)別 在作用方面是沒有的,但是 還是推薦 聲明的好,按嚴(yán)禁的 語法 規(guī)范寫,變量 不容易混亂,而且 作用范圍 也很清晰。

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊
var 聲明的變量,作用域是當(dāng)前 function
沒有聲明的變量,直接賦值的話, 會自動(dòng)創(chuàng)建變量
但作用域是全局的.
//-----------------
function doSth() {
a = "AAA";
}
doSth(); // 執(zhí)行一次 doSth
alert(a); // 可以看到 "AAA"
//-----------------
如果用了 var
//-----------------
function doSth() {
var a = "AAA";
}
doSth(); // 執(zhí)行一次 doSth
alert(a); // 出錯(cuò)!!! 變量未定義, 因?yàn)?doSth 中聲明的變量作用域只是 doSth 函數(shù).
//-----------------
另外,如果 函數(shù)套函數(shù),還會使情況變得更加復(fù)雜
--------------------------------------------------------
函數(shù)定義中,聲明的函數(shù)參數(shù)作用域都是函數(shù)本身的
如果,在參數(shù)聲明中出現(xiàn) var , 屬于語法錯(cuò)誤
- 4 回答
- 0 關(guān)注
- 1109 瀏覽
添加回答
舉報(bào)