第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ES6中l(wèi)et聲明變量問題

ES6中l(wèi)et聲明變量問題

蕪湖不蕪 2018-09-08 10:39:48
今天看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呢?
查看完整描述

2 回答

?
翻閱古今

TA貢獻1780條經(jīng)驗 獲得超5個贊

for每次循環(huán)生成一個新的作用域,fuction內(nèi)的i訪問的是這個作用域內(nèi)的i,大概可以像這樣理解:

var a = [];for (let i = 0; i < 10; i++) {
  a[i] = function () {    let j=i    console.log(j);
  };
}
a[6](); // 6

可以將源代碼使用 babel轉(zhuǎn)義看看:

https://img1.sycdn.imooc.com//5b9488180001b75f08000345.jpg

查看完整回答
反對 回復(fù) 2018-09-09
?
慕工程0101907

TA貢獻1887條經(jīng)驗 獲得超5個贊

巧了,我正好寫過這個問題的文章,你可以看一下。
。。雖然我當(dāng)時覺得寫得很清楚,但是現(xiàn)在讀了下,感覺看不懂,不過意思還是這個意思
我之前對這個問題的解析

查看完整回答
反對 回復(fù) 2018-09-09
  • 2 回答
  • 0 關(guān)注
  • 656 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號