多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jscript > JavaScript變量作用域

JavaScript變量作用域

來源:程序員人生   發布時間:2013-11-08 17:53:11 閱讀次數:3421次

變量作用域是程序中定義這個變量的區域。

先貼一段代碼,如果讀者對代碼的輸出并不感到困惑就不用往下面讀了。

/* 代碼1 */
var scope = "global ";
function checkScope() {
var scope = "local ";
function childCheck() {
var scope = "childLocal ";
document.write(scope);
}
function childUndefined() {
document.write(scope);
var scope;
}
function childOverride() {
scope = "childOverride ";
document.write(scope);
}
document.write(scope); //輸出"local"
childCheck(); //輸出"childLocal"
childUndefined(); //輸出"undefined"
childOverride(); //輸出"childOverride"
document.write(scope); //輸出"childOverride"
}
checkScope(); //輸出"local childLocal undefinedchildOverride childOverride"
document.write(scope); //輸出"global "
全局作用域與局部作用域
全局(global)變量的作用域是全局的,在Javascript中處處有定義;而函數內部聲明的變量是局部(local)變量,其作用域是局部性的,只在函數體內部有定義。對于下面的輸出讀者應不會感到意外。

/* 代碼2 */
var scope = "global";
function checkScope() {
var scope = "local";
document.write(scope);
}
checkScope(); //輸出"local"
document.write(scope); //輸出"global"

全局變量作用域中使用變量可以不用var語句,但在聲明局部變量是一定要使用var語句,否則會視為對全局變量的引用。看下面代碼:

/* 代碼3 */
var scope = "global";
function checkScope() {
scope = "local";
document.write(scope);
}
checkScope(); //輸出"local"
document.write(scope); //輸出"local"

沒有塊作用域
Javascript沒有塊級作用域,函數中聲明的變量在整個函數中都是有定義的。對于下面的代碼對于生疏的讀者可能頗感意外:

/* 代碼4 */
var scope = "global";
function checkScope() {
document.write(scope); //語句4.1
var scope = "local"; //語句4.2
document.write(scope);
}
checkScope(); //輸出"undefinedlocal"

由于語句4.1(var scope = "local";)聲明的變量在整個checkScope函數作用域內都有效,因此在語句4.2(document.write(scope); )執行的時scope引用的是局部變量,而此時局部變量scope尚未定義,所以輸出”undefined”。因此一個好的編程習慣是將所有的變量聲明集中起來放在函數的開頭。

在了解了上述內容之后,讀者再看看代碼1應該不會感到困惑了。

對象的屬性變量

對象的屬性變量比較容易理解,看一下下面的代碼讀者應該不會感到疑惑。 /* 代碼5 */
var scope = "global ";
var obj = new Object();
obj.scope = "object ";
obj.checkScope = function () {
var scope = "loacl ";
document.write(scope); //輸出"loacl"
document.write(this.scope); //輸出"object"
document.write(window.scope); //輸出"global"
}
obj.checkScope(); //輸出"loacl object global"

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日本一区二区三区免费看 | 亚洲国产高清一区二区三区 | 在线免费视频a | 老司机午夜精品视频在线观看免费 | 2015日韩永久免费视频播放 | 一二三四视频社区5在线高清视频 | 免费jizz在在线播放国产 | julia一区福利视频在线观看 | 亚洲欧美小说 | 在线18| 最近最新高清免费中文字幕 | a4yy私人毛片在线 | video18娇小粉嫩极品hd | free性欧美极度另类3d | 羞羞动漫免费观看 | 久久国产一区二区三区 | 精品久久久久久免费影院 | 最近中文字幕大全2019 | 中文字幕专区在线亚洲 | 欧美性videosex18| 国产精品jizz观看 | 武则天一级淫片免费 | 日本欧美一区二区三区片 | 一级毛片高清免费播放 | 性欧美videoshd高清 | 在线免费欧美 | 欧美成人性生活 | 中文字幕第2页 | 看欧美毛片一级毛片 | 亚洲性生活| 欧美日本综合一区二区三区 | 国产一级理论免费版 | 夜夜未满十八勿进的爽爽影院 | 日本96在线精品视频免费观看 | 国产亚洲欧美日韩俺去了 | 欧美高清videosfreeⅹ | www.自拍| 天天狠狠 | 在线影院福利 | 亚洲第一视频在线 | h网站在线|