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

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

一道js面試題

一道js面試題

ibeautiful 2018-08-01 14:21:27
for(var i=0; i<10; i++){  setTimeout(function() {    console.log(i);  },0)}請(qǐng)問(wèn)輸出什么?如果要輸出'0123456789',要怎么改?
查看完整描述

3 回答

?
開(kāi)滿天機(jī)

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

最簡(jiǎn)單的方法 var 改成let 這是es6的方式

沒(méi)有es6的話 還是用原始的閉包吧 
for (var i = 0; i < 10; i++) {

(function(j) {
    setTimeout(function timer() {
        console.log(j);
    }, 0);})(i);

}


查看完整回答
反對(duì) 回復(fù) 2018-08-05
?
慕的地6264312

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

最簡(jiǎn)單的:
for (var i = 0;i < 10;i++) {
    console.log(i);
}


查看完整回答
反對(duì) 回復(fù) 2018-08-05
?
至尊寶的傳說(shuō)

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

上面各位說(shuō)得很全面了,推薦將 var 替換為 let擁抱 es6 吧。

for(let i=0; i<10; i++){
  setTimeout(function() {    
      console.log(i);
  },0)
}

這里簡(jiǎn)單說(shuō)明一下為什么如此替換會(huì)有效。

  1. var 命令聲明的變量,在全局范圍內(nèi)有效。例中代碼,全局只有一個(gè)變量 i。每一次循環(huán),i 的值均會(huì)改變,而console.log(i) 里面的 i 指向的就是全局的 i,導(dǎo)致運(yùn)行時(shí)輸出的是最后一輪的 i 的值,即 10。

  2. let 命令聲明的變量,僅在塊級(jí)作用域內(nèi)有效。修改后的代碼,每一次循環(huán)的 i 都是一個(gè)新的變量,所以最后輸出0123456789。

另外一點(diǎn),如果每一輪循環(huán)的變量 i 均為重新聲明,那它怎么知道上一輪循環(huán)的值?
因?yàn)橛浀谩?code>JavaScript 引擎內(nèi)部會(huì)記住上一輪循環(huán)的值,初始化本輪的變量 i 時(shí),就在上一輪循環(huán)的基礎(chǔ)上進(jìn)行計(jì)算。


查看完整回答
反對(duì) 回復(fù) 2018-08-05
  • 3 回答
  • 0 關(guān)注
  • 946 瀏覽
慕課專欄
更多

添加回答

舉報(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)