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

vari=0;
setTimeout("i=i+1;alert('A1')",1000);
setTimeout("alert('A2')",1000);
setTimeout(alert('A3'),1000);
为什么第二行的代码执行的时候不延迟呢?
而第一行的代码,貌似就没有执行
慕后森
浏览 1029回答 2
2回答

子衿沉夜

先分析最后一行:setTimeout(alert('A3'),1000);这样写alert('A3')会立即执行,没有起到定时器的作用,除非把它放在匿名函数,或者向前面一样包裹成字符串(不推荐)。前面两行代码起到了定时器的作用,js会在一秒后把这两个回调函数加入到执行队列中,然后执行它们,理解这句话是关键所在。所以,并不是说,过了一秒alert('A1'),然后静静的等一秒,再alert('A2'),而是,等一秒之后,它们会按照顺序同时执行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript