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

setTimeout参数问题 为什么没有延迟呢

setTimeout参数问题 为什么没有延迟呢

慕后森 2019-04-13 08:37:00
vari=0;setTimeout("i=i+1;alert('A1')",1000);setTimeout("alert('A2')",1000);setTimeout(alert('A3'),1000);为什么第二行的代码执行的时候不延迟呢?而第一行的代码,貌似就没有执行
查看完整描述

2 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

先分析最后一行:
setTimeout(alert('A3'),1000);
这样写alert('A3')会立即执行,没有起到定时器的作用,除非把它放在匿名函数,或者向前面一样包裹成字符串(不推荐)。
前面两行代码起到了定时器的作用,js会在一秒后把这两个回调函数加入到执行队列中,然后执行它们,理解这句话是关键所在。所以,并不是说,过了一秒alert('A1'),然后静静的等一秒,再alert('A2'),而是,等一秒之后,它们会按照顺序同时执行。
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 1026 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信