今天看ES6的一篇文章里這樣寫:var a = [];for (let i = 0; i < 10; i++) {
a[i] = function () { console.log(i);
};
}
a[6](); // 6文檔中說,上面代碼中,變量i是let聲明的,當(dāng)前的i只在本輪循環(huán)有效,所以每一次循環(huán)的i其實都是一個新的變量,所以最后輸出的是6。但是a[6]不是function(){console.log(i)}嗎?當(dāng)運行a[6]()的時候,由于i是let聲明的,只在塊級作用域中有效,不應(yīng)該是打印出undefined嗎?怎么會是6呢?
ES6中l(wèi)et聲明變量問題
蕪湖不蕪
2018-09-08 10:39:48