|
//設(shè)置全局變量foo,并置為"test"
var foo = "test";
//在if塊中
if(true){
//將foo置為'new test'
var foo = "new test";
}
//如我們所見,現(xiàn)在foo等于'new test'了
alert(foo == "new test");
//創(chuàng)建一個(gè)會(huì)修改變量foo的新函數(shù)
function test(){
var foo = "old test";
}
//然而在調(diào)用時(shí),foo只在函數(shù)作用域內(nèi)起作用
test();
//這里確認(rèn)了foo 還是等于'new test'
alert(foo == "new test");
基于瀏覽器的Javascript 的一個(gè)有趣的特性是,所有屬于全局變量作用域的變量其實(shí)都是window對(duì)象的屬性。
代碼清單1-2 Javascript中全局作用域和window對(duì)象
//一個(gè)全局作用域下的變量,存儲(chǔ)了字符串'test'
var test = 'test';
//你可以看到我們的全局變量和window對(duì)象的test屬性是一致的
alert(test == window.test)
最后如果變量沒有顯式定義,它就是全局定義的,雖然它可能只在這個(gè)函數(shù)作用域的范圍內(nèi)使用。
代碼清單1-3 隱式全局作用域的變量聲明
//一個(gè)設(shè)置了foo值的函數(shù)
function test(){
foo = "test";
}
//調(diào)用此函數(shù)以設(shè)置foo的值
test();
//我們發(fā)現(xiàn)foo現(xiàn)在是全局作用域下
alert(window.foo == "test");
JavaScript技術(shù):javascript 變量作用域 代碼分析,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。