久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - ES6標(biāo)準(zhǔn)入門中l(wèi)et命令提到的for循環(huán)打印i是10,如果不用let怎么替換?

瀏覽:111日期:2023-05-09 10:31:59

問(wèn)題描述

最近在讀阮一峰老師的ES標(biāo)準(zhǔn)入門,讀到第一章的時(shí)候提到了一段代碼

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

這里用let就可以解決這個(gè)問(wèn)題,但是如果用ES5的方法呢?IIFE可以做到,不過(guò)是立即打印出來(lái)。

問(wèn)題解答

回答1:

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

閉包問(wèn)題

回答2:

可以利用 自定義屬性var a = [];for (var i = 0; i < 10; i++) {

var a[i].n = i;//自定義一個(gè)屬性 n a[i] = function () { console.log(this.n); };

}a[6](); // 6

回答3:

這個(gè)不關(guān)let什么事,我想提問(wèn)者應(yīng)該是想要輸出6吧?

但是你這提出來(lái)的問(wèn)題,感覺(jué)和你想要的完全不搭邊啊,我想幫你改提問(wèn)描述也有點(diǎn)無(wú)能為力啊……

這其實(shí)是閉包的問(wèn)題,主要,我們先分析下為什么會(huì)輸出10:

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

for里面的i的作用于是整個(gè)外部區(qū)域,所以,當(dāng)調(diào)用a[6]()的時(shí)候,其實(shí)運(yùn)行的是console.log(i),而此時(shí)因?yàn)榕芡暄h(huán),i的值是10,所以輸出10。

至于提問(wèn)者說(shuō)的,let可以解決,是因?yàn)椋琭or里面,let聲明的變量,作用于只在for內(nèi)部,所以,不會(huì)因?yàn)檠h(huán)跑完而使得i在全局作用域中為10。

其實(shí),這個(gè)問(wèn)題真正考察的應(yīng)該是閉包。

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

閉包的作用,類似于之前l(fā)et的作用,是將局部的變量相互隔離開(kāi)而不至于污染外部的變量值,每一個(gè)閉包內(nèi),都是一個(gè)獨(dú)立的區(qū)域,而閉包傳參只用于閉包內(nèi)部使用,所以也可以實(shí)現(xiàn)輸出6的結(jié)果。

回答4:

可以采用閉包的方式http://www.softwhy.com/articl...這個(gè)文章的后半部分已經(jīng)解釋了你的疑問(wèn)

標(biāo)簽: JavaScript
主站蜘蛛池模板: 久久久www成人免费精品 | 久久女人网 | 欧美一级片在线观看 | 日日骚 | 91精品国产一区二区三区香蕉 | 国产精品视频免费 | 国产精品第一国产精品 | 日韩欧美国产网站 | 国产精品免费观看 | 黄色二区 | 亚洲网在线 | 国产视频久久久久久久 | 国内精品一区二区三区视频 | 成人久久久久爱 | 亚洲精品在线免费观看视频 | 久久久片 | 午夜影院免费体验区 | 国产视频网 | av三级在线观看 | 龙珠z国语291集普通话 | www.国产精品 | 日韩av免费在线观看 | 91亚洲国产精品 | 亚洲精品wwww | av大片| 亚洲精品成人在线 | 中文字幕乱码亚洲精品一区 | 国产日韩免费视频 | 免费一区 | 国产视频一区二区 | 看一级毛片视频 | 插插射啊爱视频日a级 | 特黄特黄aaaa级毛片免费看 | 亚洲国产一区二区在线 | 日本一二三区在线 | 久久精品一区二区三区四区 | 亚洲欧美日韩在线一区 | 亚洲欧美一区二区精品中文字幕 | 亚洲国产精品99久久久久久久久 | 国产a久久精品一区二区三区 | 欧美日韩精品 |