for循环中使用setTimeout,面试题详解~
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了for循环中使用setTimeout,面试题详解~,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含637字,纯文字阅读大概需要1分钟。
内容图文
![for循环中使用setTimeout,面试题详解~](/upload/InfoBanner/zyjiaocheng/1055/2fd329653a5a4f2a98f758786da812ac.jpg)
for循环中使用setTimeout
1、JavaScript是单线程的;
2、所有同步任务在主线程中执行,形成一个“执行栈”, 而异步任务都会进入到任务队列中等待,
只有当主线程里的同步任务都被执行完毕,异步任务才会进入主线程中被执行;
3、执行异步任务,就是执行对应的回调函数;
4、为什么输出的是5个5?
<script>
for(var i = 0;i<5;i++){
setTimeout(function(){
console.log(i);
},i*1000);
}
</script>
for循环在主线程中执行,而settimeout被放到了任务队列中,
for循环(假设只有这个同步任务)执行完毕后,settimeout才进入主线程被执行,
而此时i=5(因为不小于5才能跳出for循环,即for循环执行完毕时i就是等于5)。
先要输出0 1 2 3 4 可以这样写:
<script>
function timer(i) {
setTimeout(function () {
console.log(i);
}, i * 1000);
}
for (var i = 0; i < 5; i++) {
timer(i);
}
</script>
原文:https://www.cnblogs.com/isremya/p/12640081.html
内容总结
以上是互联网集市为您收集整理的for循环中使用setTimeout,面试题详解~全部内容,希望文章能够帮你解决for循环中使用setTimeout,面试题详解~所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。