为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这段代码输出结果是十个10呢?

为什么这段代码输出结果是十个10呢?

慕标琳琳 2018-09-01 12:25:56
for(i=0;i<10;i++){     setTimeout("console.log(i)",0); }为什么输出结果是十个10呢?还有,前面先输出的304是什么?每次输出那个值都不一样。
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

为什么输出结果是十个10呢?

setTimeout是异步的,在这里,当for循环结束之后才开始执行队列中的代码,那for结束之后 i是多少呢? 10.
解决方法是闭包,这篇文章有详细解读你的例子

前面先输出的304是什么?

timeoutID: 标示当前的计时器,可以用于清除该定时器 
window.clearTimeout(timeoutID)


查看完整回答
反对 回复 2018-10-16
  • 1 回答
  • 0 关注
  • 684 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号