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

关于js,alert()阻塞的问题

关于js,alert()阻塞的问题

一只斗牛犬 2018-11-14 13:13:01
我们知道alert()是阻塞式的,但是一下代码执行顺序有问题执行顺序有问题( chrome 和 opera 有问题,FF,IE11 没问题)     for(let i = 0; i < 5; i++){         setTimeout(() => alert(i), 1000);     }结果: 0,3,2,1,4 或者其他顺序这样写也没问题    for(let i = 0; i < 5; i++)         setTimeout(alert(i), 1000);这样写执行顺序就没问题     for(let i = 0; i < 5; i++){         setTimeout(() => console.log(i), 1000);     }结果:0,1,2,3,4这是为什么呢?
查看完整描述

1 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

建议看一下setTimeout的运行原理

你如果在alert 0 的时候,不去点确定,等5s(线程空闲情况,有可能需要等10s或者更长时间) 之后再去点击,你发现顺序就正常了

原因是,setTimeout在中代码是,如果进程被占用,等到进程空闲了,就会跳过这次,执行下一次了


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

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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