課程
/前端開發(fā)
/JavaScript
/JavaScript深入淺出
for (var i = 0; i < 10; i++) { ? ?setTimeout(function() {console.log(i); }, 100 * i);} ?
2015-12-29
源自:JavaScript深入淺出 3-1
正在回答
var?==
10個10,這個涉及到了函數(shù)的閉包和作用域,這里實際上只有一個i,循環(huán)的10個函數(shù)是共享一個i的引用,如果想輸出0到9的話只需將var 改成 let 即可,這樣就在函數(shù)每次執(zhí)行的時候創(chuàng)建了一個閉包
10啊
你可以這樣理解,先是for(vari= 0; i< 10; i++){}然后console.log(i)執(zhí)行十次
,畢竟console.log(i)是延遲執(zhí)行的,它也是個函數(shù),只有當它執(zhí)行的時候參數(shù)才開始傳入的
for (var i=0; i<5; i++){
? (function(i){
? ? ? setTimeout(function(){
? ? ? ? ? console.log(i);
? ? ? },i*1000);
? })(i);
}
在執(zhí)行setTimeout的時候,上面的i已經(jīng)初始化完成了,此時i=10,所以。。。。。
一只特立獨行的doge
在控制臺輸出10個10;
不是輸出0到9;
一別經(jīng)年 提問者
舉報
由淺入深學習JS語言特性,且解析JS常見誤區(qū),從入門到掌握
24 回答以下這段代碼運行結果不對
3 回答代碼怎么執(zhí)行的結果不是一樣的,奇怪,求解
2 回答這段代碼是什么意思啊
8 回答這段代碼怎麼運行的???
3 回答這段 是否加join()似乎對結果沒什么影響 什么呢
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2018-12-03
2018-10-16
10個10,這個涉及到了函數(shù)的閉包和作用域,這里實際上只有一個i,循環(huán)的10個函數(shù)是共享一個i的引用,如果想輸出0到9的話只需將var 改成 let 即可,這樣就在函數(shù)每次執(zhí)行的時候創(chuàng)建了一個閉包
2016-11-19
10啊
2016-11-08
你可以這樣理解,先是for(vari= 0; i< 10; i++){}然后console.log(i)執(zhí)行十次
,畢竟console.log(i)是延遲執(zhí)行的,它也是個函數(shù),只有當它執(zhí)行的時候參數(shù)才開始傳入的
2016-09-19
for (var i=0; i<5; i++){
? (function(i){
? ? ? setTimeout(function(){
? ? ? ? ? console.log(i);
? ? ? },i*1000);
? })(i);
}
2016-04-30
在執(zhí)行setTimeout的時候,上面的i已經(jīng)初始化完成了,此時i=10,所以。。。。。
2015-12-29
在控制臺輸出10個10;
不是輸出0到9;