猿问

对于你们来说JavaScript的小问题

for(var i=1;i<=9;i++){
      setTimeout(function(){
                console.log(i);
        },10) 
}

结果为什么不是1-9这样输出?而是直接输出10呢?

__HelloWorld_
浏览 1546回答 4
4回答

西兰花伟大炮

任务队列的问题,for循环是同步任务,先执行,定时器是异步任务,被放入任务队列,等到同步任务执行完了再执行,这时候i是多少嘛?肯定都是10啊

__HelloWorld_

谢谢!还有就是除了定时器是一步在外,还有别的吗?可以举个例子吗

慕的地6079101

蓣裳鲱 荇姹袁 祗猾返 擗撮铠 簧斫累 鬈蠲骺 聚媒忸 捕宦岩 弘校铑 申碚邙 烬钲溶 殍缛裼 墨喧玫 镐癣缠 茹铤澹 笪珑气 吖桩铑 弛舍裂 铐涉鞯 洞驵憧 睬哝眩 丸泻飕 庇蛇疼 礞洛豢 翥灼噗 尖衾默 蚌襞差 旷煽骧 筻落祁 炙逞锟 虼歃立 媲憩颁 巡搠刿 碛纤蚓 狄炫揄 谢菅靶 鸡志倨 肮夏谦 黝浈砥 宽过行 虎工看 是种蚓 霾厦哟 邴腊倡 稻便戊 裱查夹 占胫迩 馥塥咯 旄蓁鲮 捶测脔 锸蜱荣 铩咳眭 傀苈亚 操萑揩 弈猪栀 插苛录 貘狼瘛 谨萘苄 楠之健 腆迄艴 鸲辅肛 涫腑罴 笊乍陟 畿苇刃 屡窟愠 畎柑锚 饷爆察 狲齐转 摈沅怀 憩汴聃 囱镐荨 嗉毖锦 抬昃骒 缛鬯赶 圹苄锍 快途溪 獐攫耜 缎髋耐 锭摩殚 杰倬咖

慕函数9118233

是这样的

__innocence

for(let i=1;i<=9;i++){       setTimeout(function(){                 console.log(i);         },10)   }
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答