麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

Javascript變量作用域詳解

2019-11-20 21:30:43
字體:
來源:轉載
供稿:網友

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

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

復制代碼 代碼如下:

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

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

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中
復制代碼 代碼如下:

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,沒有塊級作用域

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

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

復制代碼 代碼如下:

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

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

ps:firefox2+實現了JS1.7

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色特级一级片 | 一区二区精品视频在线观看 | 成人在线免费观看视频 | 亚洲第一视频在线 | 国产99久久久久久免费看农村 | 黄色免费av网站 | 一区二区三区黄色 | 国产精品剧情一区二区在线观看 | 综合在线视频 | 在线播放一区二区三区 | 国产精品欧美久久久久一区二区 | 久久人人人 | 国产一级爱c视频 | 亚洲精品日韩色噜噜久久五月 | 福利在线免费视频 | 日韩黄色片在线观看 | 毛片一区二区三区四区 | 久久人添人人爽人人爽人人片av | 亚洲片在线观看 | 麻豆视频在线播放 | 久啪视频 | 深夜视频在线观看 | 性欧美极品xxxx欧美一区二区 | 男女污污视频网站 | 毛片118极品美女写真 | 91系列在线观看 | av老司机久久 | 天天透天天狠天天爱综合97 | 久久艹综合 | 草妞视频| 成人在线观看免费爱爱 | 久久综合艹 | 欧美a黄| 精品国产一区二区三区四区在线 | 成人福利免费在线观看 | 超碰99在线观看 | 污视频在线免费播放 | 国产精品片一区二区三区 | 操碰97| 成人免费观看毛片 | 男女生羞羞视频网站在线观看 |