17.js中沒有塊級作用域

js中沒有塊級作用域

for(var i=0;i<10;i++){

       doSomething(i);
    }
    alert(i); // output :10,why?
    上述代碼運行後會返回10,爲什麼呢?如果是同樣的java或是c#代碼,則不會是10,可能會提示運行錯誤,因爲i只存在於for循環體重,在運行完for循環後,for中的所有變量就被銷燬了。而在javascript中則不是這樣的,在for中的變量聲明將會添加到當前的執行環境中(這裏是全局執行環境),因此在for循環完後,變量i依舊存在於循環外部的執行環境。因此,會輸出10。
發佈了35 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章