91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS變量及其作用域的示例分析

發布時間:2021-08-07 09:53:09 來源:億速云 閱讀:130 作者:小新 欄目:web開發

小編給大家分享一下JS變量及其作用域的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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

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

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

2、 在函數體內,局部變量的優先級高于全局變量。

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

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

3、 外部怎么讀取函數體內部的局部變量呢?

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

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

以上是“JS變量及其作用域的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

天津市| 武冈市| 巨野县| 盖州市| 钦州市| 望江县| 庆安县| 大厂| 沙洋县| 环江| 福泉市| 蒙阴县| 甘泉县| 如东县| 水富县| 张家港市| 贵定县| 灵丘县| 岱山县| 江源县| 正阳县| 荔波县| 泸定县| 青河县| 抚宁县| 河东区| 手游| 喀喇沁旗| 南京市| 安泽县| 呼图壁县| 中西区| 石屏县| 成都市| 厦门市| 镶黄旗| 石泉县| 沈丘县| 湾仔区| 汤阴县| 子洲县|