官术网_书友最值得收藏!

4.6 變量的作用域

視頻講解

變量的作用域是指變量在程序中的有效范圍,在有效范圍內可以使用該變量。變量的作用域取決于該變量是哪一種變量。

4.6.1 全局變量和局部變量

在JavaScript中,變量根據作用域可以分為兩種:全局變量和局部變量。全局變量是定義在所有函數之外的變量,作用范圍是該變量定義后的所有代碼;局部變量是定義在函數體內的變量,只有在該函數中,且該變量定義后的代碼中才可以使用這個變量,函數的參數也是局部性的,只在函數內部起作用。如果把函數比作一臺機器,那么,在機器外擺放的原材料就相當于全局變量,這些原材料可以為所有機器使用,而機器內部所使用的原材料就相當于局部變量。

例如,下面的程序代碼說明了變量的作用域的有效范圍:

    01  var a="這是全局變量";          //該變量在函數外聲明,作用于整個腳本
    02  function send(){               //定義函數
    03      var b="這是局部變量";      //該變量在函數內聲明,只作用于該函數體
    04      document.write(a+"<br>");  //輸出全局變量的值
    05      document.write(b);         //輸出局部變量的值
    06  }
    07  send();                        //調用函數

運行結果為:

    這是全局變量
    這是局部變量

上述代碼中,局部變量b只作用于函數體,如果在函數之外輸出局部變量b的值將會出現錯誤。錯誤代碼如下:

    01  var a="這是全局變量";           //該變量在函數外聲明,作用于整個腳本
    02  function send(){                //定義函數
    03      var b="這是局部變量";       //該變量在函數內聲明,只作用于該函數體
    04      document.write(a+"<br>");   //輸出全局變量的值
    05  }
    06  send();                        //調用函數
    07  document.write(b);              //錯誤代碼,不允許在函數外輸出局部變量的值
4.6.2 變量的優先級

如果在函數體中定義了一個與全局變量同名的局部變量,那么該全局變量在函數體中將不起作用。例如,下面的程序代碼將輸出局部變量的值:

    01  var a="這是全局變量";       //聲明一個全局變量a
    02  function send(){           //定義函數
    03      var a="這是局部變量";   //聲明一個和全局變量同名的局部變量a
    04      document.write(a);     //輸出局部變量a的值
    05  }
    06  send();                    //調用函數

運行結果為:

    這是局部變量

上述代碼中,定義了一個和全局變量同名的局部變量a,此時在函數中輸出變量a的值為局部變量的值。

主站蜘蛛池模板: 育儿| 乌兰县| 彩票| 康马县| 神池县| 巴林左旗| 黄石市| 霞浦县| 苗栗市| 随州市| 昭苏县| 汝州市| 扶风县| 庆云县| 阿巴嘎旗| 商河县| 涟源市| 馆陶县| 乾安县| 凭祥市| 三亚市| 韩城市| 布尔津县| 千阳县| 尉氏县| 贵溪市| 南昌市| 扶风县| 来凤县| 阜阳市| 新乐市| 三亚市| 平泉县| 墨竹工卡县| 进贤县| 增城市| 密云县| 诸城市| 西宁市| 木兰县| 揭阳市|