国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS變量及其作用域

2019-11-19 16:59:16
字體:
供稿:網(wǎng)友

1、 變量及其作用域:變量分為“全局變量”和“局部變量”,“全局變量”申明在函數(shù)外部,可供所有函數(shù)使用,而“局部變量”申明在函數(shù)體內(nèi)部,只能在定義該變量的函數(shù)體內(nèi)使用。

(備注:在申明變量時沒有var關(guān)鍵字,而是直接賦值的變量均為全局變量)

<script type="text/javascript">  function main() {      n = 10;//這里的n為全局變量,可以被外部直接使用  }  main();  alert(n);</script>

2、 在函數(shù)體內(nèi),局部變量的優(yōu)先級高于全局變量。

<script type="text/javascript">  //網(wǎng)上看到的我認(rèn)為很有代表性的一個例子,在函數(shù)體外部和內(nèi)部都申明了相同名字的變量,變量的作用域問題,例子如下:  var n = 1;  function test() {    alert(n); //這里的a并不是全局變量,原因是函數(shù)體第四行申明了一個相同重名的局部變         //量a,如果把第四行a的申明注釋掉,那么這里的a顯示1,為全局變量。所以得         //出結(jié)論:全局變量a被局部變量a覆蓋了。         //說明了JS函數(shù)在test()在執(zhí)行前,函數(shù)體內(nèi)的變量a都指向了局部變量,但本         //行輸出的a在執(zhí)行過程中還沒有被賦值,所以顯示undefined。    n = 2;    alert(n);    var n; //本行申明局部變量a    alert(n);  }    test();    alert(n);</script>

按照我的理解,上面例子最后輸出的答案應(yīng)該是:1 2 2 1;但是正確的答案是:undefined 2 2 1; 原因就是函數(shù)體外部和內(nèi)部都申明了相同名字的變量時,局部變量覆蓋了全局變量。

3、 外部怎么讀取函數(shù)體內(nèi)部的局部變量呢?

一般來說,只有函數(shù)體內(nèi)部可以直接得到外部的全局變量,但是外部要得到函數(shù)體內(nèi)部的局部變量是不行的。但是,通過在函數(shù)體內(nèi)部再定義一個函數(shù)返回局部變量,再從外部調(diào)用函數(shù)就能實現(xiàn)了。

<script type="text/javascript">  function f1() {        var n = 10;        function f2() {//在f1()內(nèi)部再定義f2(),通過f2()訪問f1()中的局部變量            alert(n);        }        return f2;//返回f1()局部變量n  }    var result = f1(); //在外部調(diào)用f1()函數(shù),就能獲取局部變量n的值  result(); // 10,即為n的值</script>

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持武林網(wǎng)!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南投市| 大冶市| 祁东县| 崇明县| 克拉玛依市| 工布江达县| 揭西县| 阳信县| 新丰县| 弥勒县| 赫章县| 莱芜市| 洞口县| 平陆县| 高雄县| 洪泽县| 安吉县| 和林格尔县| 搜索| 延吉市| 黎平县| 焉耆| 卓资县| 舟曲县| 南投市| 周至县| 溆浦县| 潼关县| 南澳县| 兴和县| 六枝特区| 江陵县| 西盟| 岳阳市| 和硕县| 图们市| 繁峙县| 察雅县| 塔城市| 彰化市| 富平县|