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

Javascript變量作用域詳解

 更新時間:2013年12月06日 09:45:06   作者:  
這篇文章主要是對Javascript變量作用域進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助

變量的作用域指的是變量的可見性,而生命周期則(存活期)則是從另一個角度考察變量。

JS中變量的作用域分為全局變量和局部變量,函數(shù)內(nèi)定義的稱為局部變量,函數(shù)外的稱為全局變量。(“函數(shù)外的稱為全局變量”是相對的,另此處討論的前提是用var顯式聲明的變量,函數(shù)內(nèi)不用var定義的變量默認(rèn)是全局變量,當(dāng)然忽略var聲明變量是不贊成的)。

復(fù)制代碼 代碼如下:

var glob = 4;//函數(shù)外聲明全局變量
function fun() {
    var height = 20; //函數(shù)內(nèi)用var聲明的是局部變量
    weight = 50; //函數(shù)內(nèi)不用var聲明的是全局變量
}
fun();
alert(weight);

JS中沒有塊級作用域,即用大括號{}包含的。Java中則有。在main方法中寫入下代碼
復(fù)制代碼 代碼如下:

public static void main(String... args) {
  for(int i=0;i<5;i++) {
  }
    {
        int j=10;
    }
    int z = 20;
    System.out.println(i); // i不可見,語法分析時報錯,即編譯不通過
    System.out.println(j); // j不可見,語法分析時報錯,即編譯不通過
    System.out.println(z); // z可見,輸出20
}

但如果在JS中
復(fù)制代碼 代碼如下:

for(var i=0;i<5;i++) {
}
var obj = {name:"Lily"};
for(var attr in obj) {
}
{
  var j=10;
}
alert(i);//輸出4,沒有塊級作用域
alert(attr); //輸出name,沒有塊級作用域
alert(j);//輸出10,沒有塊級作用域

這也說明一個問題,避免在全局范圍內(nèi)使用for循環(huán)同時聲明變量,否則會造成全局命名范圍的污染。

當(dāng)然,JS1.7中提出了let關(guān)鍵字聲明變量(見https://developer.mozilla.org/cn/New_in_JavaScript_1.7),只作用于for語句范圍。

復(fù)制代碼 代碼如下:

for(let i=0;i<5;i++) {
   //todo
}
alert(i);//運(yùn)行時報錯,提示i未定義

JS1.7需要這樣引用 <script type="application/javascript;version=1.7"/></script>

ps:firefox2+實(shí)現(xiàn)了JS1.7

相關(guān)文章

最新評論

庄河市| 天全县| 顺平县| 大方县| 兴宁市| 钟山县| 怀远县| 尉氏县| 黎平县| 定边县| 广东省| 保山市| 石泉县| 会宁县| 靖远县| 封开县| 沛县| 泊头市| 佛学| 普安县| 平度市| 黄浦区| 五大连池市| 安平县| 崇信县| 佛冈县| 响水县| 南投县| 思茅市| 滕州市| 简阳市| 酉阳| 青川县| 宁都县| 安西县| 浮梁县| 靖远县| 彰武县| 乐业县| 松潘县| 治多县|