javascript中的作用域scope介紹
更新時(shí)間:2010年12月28日 23:16:26 作者:
在一般程序設(shè)計(jì)語言中,作用域是按塊來劃分的。即“變量定義在哪個(gè)塊之內(nèi),這個(gè)塊就是變量的有效范圍”。
而在javascript中,變量的作用域是按函數(shù)來劃分的——變量在某個(gè)函數(shù)范圍內(nèi)有效。比如:
var f = false;
if(true) { var f = true; } //此時(shí)f位于if內(nèi),也就是塊內(nèi),等價(jià)于還是全局范圍內(nèi)
alert(f) //所以,結(jié)果為true
再如下例:
var f = false;
function test() {
var f = true; //這是函數(shù)內(nèi)定義的變量,只在函數(shù)內(nèi)部有效,函數(shù)執(zhí)行完畢后,該變量將被釋放
}
test();
alert(f) //結(jié)果為false,并沒有因?yàn)閠est()的執(zhí)行而改變
再有,在javascript中聲明的全局變量都可以看作是window對(duì)象的一個(gè)屬性,比如:
var test = "this is a test";
alert(window.test == test) //結(jié)果為true
這正好驗(yàn)證了上邊所說的全局變量也是window對(duì)象的屬性
最后,我們來看
[code]
function test() {
f = false;
}
test();
alert(f) //結(jié)果為false
[html]
那么,如果在聲明變量時(shí),如果不添加var(隱式聲明),也被看作了全局變量了,盡管它是定義在函數(shù)之內(nèi)的。
復(fù)制代碼 代碼如下:
var f = false;
if(true) { var f = true; } //此時(shí)f位于if內(nèi),也就是塊內(nèi),等價(jià)于還是全局范圍內(nèi)
alert(f) //所以,結(jié)果為true
再如下例:
復(fù)制代碼 代碼如下:
var f = false;
function test() {
var f = true; //這是函數(shù)內(nèi)定義的變量,只在函數(shù)內(nèi)部有效,函數(shù)執(zhí)行完畢后,該變量將被釋放
}
test();
alert(f) //結(jié)果為false,并沒有因?yàn)閠est()的執(zhí)行而改變
再有,在javascript中聲明的全局變量都可以看作是window對(duì)象的一個(gè)屬性,比如:
復(fù)制代碼 代碼如下:
var test = "this is a test";
alert(window.test == test) //結(jié)果為true
這正好驗(yàn)證了上邊所說的全局變量也是window對(duì)象的屬性
最后,我們來看
[code]
function test() {
f = false;
}
test();
alert(f) //結(jié)果為false
[html]
那么,如果在聲明變量時(shí),如果不添加var(隱式聲明),也被看作了全局變量了,盡管它是定義在函數(shù)之內(nèi)的。
相關(guān)文章
JavaScript 自定義彈出窗口的實(shí)現(xiàn)代碼
這篇文章主要介紹了JavaScript 自定義彈出窗口的實(shí)現(xiàn)代碼,實(shí)現(xiàn)一采用html編寫彈出窗口內(nèi)容,實(shí)現(xiàn)二采用JavaScript編寫彈出窗口內(nèi)容,結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-09-09
原生js實(shí)現(xiàn)下拉框功能(支持鍵盤事件)
本文主要分享了原生js實(shí)現(xiàn)下拉框(支持鍵盤事件)功能的示例代碼。具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01
原生JavaScript實(shí)現(xiàn)進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了原生JavaScript實(shí)現(xiàn)進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-02-02
JS處理數(shù)據(jù)四舍五入(tofixed與round的區(qū)別詳解)
下面小編就為大家?guī)硪黄狫S處理數(shù)據(jù)四舍五入(tofixed與round的區(qū)別詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10
ES6新特性三: Generator(生成器)函數(shù)詳解
這篇文章主要介紹了ES6新特性之Generator(生成器)函數(shù),簡單分析了Generator(生成器)函數(shù)的功能、定義、調(diào)用方法并結(jié)合實(shí)例形式給出了相關(guān)使用技巧,需要的朋友可以參考下2017-04-04
JavaScript實(shí)現(xiàn)的仿新浪微博原生態(tài)輸入字?jǐn)?shù)即時(shí)檢查功能【兼容IE6】
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的仿新浪微博原生態(tài)輸入字?jǐn)?shù)即時(shí)檢查功能,涉及javascript事件響應(yīng)及字符串的遍歷、轉(zhuǎn)換、判斷等相關(guān)操作技巧,需要的朋友可以參考下2017-09-09

