Open yoowinsu opened 7 years ago
alert是弹框显示一个警告对话框,属于window的一个方法。
偶然看到一段代码,如下:
for(let i=0;i<10;i++){ setTimeout(function(){ alert(i) },0) }
看到代码的第一反应是,这不是面试题中经常考察的let的块级作用域以及setTimeout的代码执行后加入队列嘛,很明显是顺序弹窗0,1,2,3,4,5,6,7,8,9.
此时,你的答案又是什么呢?
如果和我想的一样,还说明是图样图森破啊!真是这样,也太对不住我这标题了,哈哈
很神奇的alert,第一次弹窗出0是无需置疑的,重点是后面alert出的1-9是无序执行的,有图有真相:
这是alert和console.log不同的地方。作为对比,我们看下同样的代码把alert换成console.log的结果:
具体原因目前还不得而知,就暂且当做alert的一个特性吧,一个神奇的特性。
2020年回过来说下 已经是正常顺序了
alert是弹框显示一个警告对话框,属于window的一个方法。
偶然看到一段代码,如下:
看到代码的第一反应是,这不是面试题中经常考察的let的块级作用域以及setTimeout的代码执行后加入队列嘛,很明显是顺序弹窗0,1,2,3,4,5,6,7,8,9.
此时,你的答案又是什么呢?
如果和我想的一样,还说明是图样图森破啊!真是这样,也太对不住我这标题了,哈哈
很神奇的alert,第一次弹窗出0是无需置疑的,重点是后面alert出的1-9是无序执行的,有图有真相:
这是alert和console.log不同的地方。作为对比,我们看下同样的代码把alert换成console.log的结果:
具体原因目前还不得而知,就暂且当做alert的一个特性吧,一个神奇的特性。