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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

求解這兩個(gè)輸出區(qū)別?

求解這兩個(gè)輸出區(qū)別?

ibeautiful 2019-02-20 18:19:42
const Greeters = []for (var i = 0 ; i < 10 ; i++) {  Greeters.push(function () { return console.log(i) })}Greeters[0]() // 10Greeters[1]() // 10Greeters[2]() // 10const Greeters = []for (let i = 0 ; i < 10 ; i++) {  Greeters.push(function () { return console.log(i) })}Greeters[0]() // 0Greeters[1]() // 1Greeters[2]() // 2第二個(gè)用let后面不應(yīng)該是undefined嗎。。還有為什么Greeters數(shù)組里保存的是[function () { return console.log(i)},function () { return console.log(i)},...,function () { return console.log(i)}]而不是[function () { return console.log(0)},function () { return console.log(1)},...,function () { return console.log(9)}]?
查看完整描述

1 回答

?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

典型面試題,變量生命周期問(wèn)題,for循環(huán)問(wèn)題和函數(shù)形參問(wèn)題。
let和var的不同,var是在當(dāng)前代碼塊結(jié)束之后仍然在內(nèi)存保留該變量和值,而let則是不保留,直接回收。
而for循環(huán)輸出是等到循環(huán)全部結(jié)束。
所以第一種全部都是10。
而第二種方式不是undefined呢,很簡(jiǎn)單,用到了閉包,注意這里返回的不是值,而是函數(shù),如果第二種直接輸出,那就是undefined,但是現(xiàn)在返回函數(shù),我們還記得函數(shù)的形參嗎,沒(méi)錯(cuò),函數(shù)調(diào)用時(shí)形參是對(duì)實(shí)參的一個(gè)復(fù)制,所以在輸出時(shí)實(shí)參雖然被回收了,但是形參還保留了值。所以JS中循環(huán)取值和輸出的最簡(jiǎn)單解決方式就是閉包。

查看完整回答
反對(duì) 回復(fù) 2019-02-27
  • 1 回答
  • 0 關(guān)注
  • 326 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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