最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于JavaScript 聲明全局變量的三種方式詳解

 更新時(shí)間:2013年05月07日 19:16:44   投稿:jingxian  
本篇文章對(duì)JavaScript中聲明全局變量的三種方式進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下

JS中聲明全局變量主要分為顯式聲明或者隱式聲明下面分別介紹。

聲明方式一:

使用var(關(guān)鍵字)+變量名(標(biāo)識(shí)符)的方式在function外部聲明,即為全局變量,否則在function聲明的是局部變量。該方式即為顯式聲明詳細(xì)如下:

<script> 
  var test = 5;//全局變量 
  function a(){ 
    var a = 3;//局部變量 
    alert(a); 
  } 
  function b(){ 
    alert(test); 
  } 
  //a();//調(diào)用a方法,那么方法里面的內(nèi)容才會(huì)執(zhí)行 
  //b();//同上 
</script> 

聲明方式二:

沒(méi)有使用var,直接給標(biāo)識(shí)符test賦值,這樣會(huì)隱式的聲明了全局變量test。即使該語(yǔ)句是在一個(gè)function內(nèi),當(dāng)該function被執(zhí)行后test變成了全局變量。

<script> 
    test = 5;//全局變量 
    function a(){ 
      aa = 3;//也是全局變量 
      alert(test); 
    } 
    //a();  //輸出5 
    //alert(aa);//這里也可以方法a()方法里面的變量,因?yàn)閍a是全局變量 
  </script> 

聲明方式三:

使用window全局對(duì)象來(lái)聲明,全局對(duì)象的屬性對(duì)應(yīng)也是全局變量,詳細(xì)如下:

<script> 
  window.test = 50; 
  alert(test);//輸出50 
</script> 

這種方式經(jīng)常被用到一個(gè)匿名函數(shù)執(zhí)行后將一些函數(shù)公開到全局。 如JQuery1.5中最末一句
代碼如下:

window.jQuery = window.$ = jQuery;

全局變量的優(yōu)點(diǎn):

可以減少變量的個(gè)數(shù),減少由于實(shí)際參數(shù)和形式參數(shù)的數(shù)據(jù)傳遞帶來(lái)的時(shí)間消耗。

全局變量的缺點(diǎn):

(1)全局變量保存在靜態(tài)存貯區(qū),程序開始運(yùn)行時(shí)為其分配內(nèi)存,程序結(jié)束釋放該內(nèi)存。與局部變量的動(dòng)態(tài)分配、動(dòng)態(tài)釋放相比,生存期比較長(zhǎng),因此過(guò)多的全局變量會(huì)占用較多的內(nèi)存單元。

(2)全局變量破壞了函數(shù)的封裝性能。函數(shù)象一個(gè)黑匣子,一般是通過(guò)函數(shù)參數(shù)和返回值進(jìn)行輸入輸出,函數(shù)內(nèi)部實(shí)現(xiàn)相對(duì)獨(dú)立。但函數(shù)中如果使用了全局變量,那么函數(shù)體內(nèi)的語(yǔ)句就可以繞過(guò)函數(shù)參數(shù)和返回值進(jìn)行存取,這種情況破壞了函數(shù)的獨(dú)立性,使函數(shù)對(duì)全局變量產(chǎn)生依賴。同時(shí),也降低了該函數(shù)的可移植性。

(3)全局變量使函數(shù)的代碼可讀性降低。由于多個(gè)函數(shù)都可能使用全局變量,函數(shù)執(zhí)行時(shí)全局變量的值可能隨時(shí)發(fā)生變化,對(duì)于程序的查錯(cuò)和調(diào)試都非常不利。
因此,如果不是萬(wàn)不得已,最好不要使用全局變量。

相關(guān)文章

  • js基礎(chǔ)知識(shí)(公有方法、私有方法、特權(quán)方法)

    js基礎(chǔ)知識(shí)(公有方法、私有方法、特權(quán)方法)

    這篇文章主要介紹了js基礎(chǔ)知識(shí),包括公有方法、私有方法,以及特權(quán)方法的使用介紹,感興趣的小伙伴們可以參考一下
    2015-11-11
  • JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之棧與隊(duì)列

    JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之棧與隊(duì)列

    在面向?qū)ο蟮某绦蛟O(shè)計(jì)里,一般都提供了實(shí)現(xiàn)隊(duì)列(queue)和堆棧(stack)的方法,而對(duì)于JS來(lái)說(shuō),我們可以實(shí)現(xiàn)數(shù)組的相關(guān)操作,來(lái)實(shí)現(xiàn)隊(duì)列和堆棧的功能,看下面的相關(guān)介紹.
    2016-01-01
  • 關(guān)于js的三種使用方式(行內(nèi)js、內(nèi)部js、外部js)的程序代碼

    關(guān)于js的三種使用方式(行內(nèi)js、內(nèi)部js、外部js)的程序代碼

    本文主要和大家介紹關(guān)于js的三種使用方式(行內(nèi)js、內(nèi)部js、外部js)的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家
    2018-05-05
  • 最新評(píng)論

    班戈县| 佛学| 通榆县| 顺义区| 昌吉市| 鹰潭市| 樟树市| 花垣县| 孝感市| 龙岩市| 抚宁县| 崇信县| 亚东县| 乳山市| 天镇县| 阜平县| 腾冲县| 廉江市| 屯留县| 蓝山县| 中阳县| 新安县| 扎鲁特旗| 汉阴县| 山东省| 盘锦市| 邻水| 东山县| 马尔康县| 九江市| 科尔| 郎溪县| 塔城市| 商丘市| 藁城市| 鹿邑县| 英德市| 津市市| 江门市| 浏阳市| 壤塘县|