做网站宁夏网站建设必备的功能模块
news/
2025/10/4 11:32:46/
文章来源:
做网站宁夏,网站建设必备的功能模块,怎么做刷网站流量生意,苏州优化排名seo目录
一、为什么 JavaScript 是单线程#xff1f;
二、JavaScript是单线程#xff0c;怎样执行异步的代码#xff1f;
三、事件循环机制
四、代码1
五、结果1
六、代码2
七、结果2 一、为什么 JavaScript 是单线程#xff1f;
JavaScript 语言的一大特点就是单线程…目录
一、为什么 JavaScript 是单线程
二、JavaScript是单线程怎样执行异步的代码
三、事件循环机制
四、代码1
五、结果1
六、代码2
七、结果2 一、为什么 JavaScript 是单线程
JavaScript 语言的一大特点就是单线程也就是说同一个时间只能做一件事。那么为什么JavaScript 不能有多个线程呢 这样能提高效率啊。
JavaScript 的单线程与它的用途有关。作为浏览器脚本语言JavaScript 的主要用途是与用户互动以及操作 DOM。这决定了它只能是单线程否则会带来很复杂的同步问题。比如假定JavaScript 同时有两个线程一个线程在某个 DOM 节点上添加内容另一个线程删除了这个节点这时浏览器应该以哪个线程为准
所以为了避免复杂性从一诞生JavaScript 就是单线程这已经成了这门语言的核心特征将来也不会改变。
二、JavaScript是单线程怎样执行异步的代码
单线程就意味着所有任务需要排队前一个任务结束才会执行后一个任务。如果前一个任务耗时很长后一个任务就不得不一直等着。消息队列消息队列是一个先进先出的队列它里面存放着各种消息。事件循环事件循环是指主线程重复从消息队列中取消息、执行的过程。实际上主线程只会做一件事情就是从消息队列里面取消息、执行消息再取消息、再执行。当消息队列为空时就会等待直到消息队列变成非空。而且主线程只有在将当前的消息执行完成后才会去取下一个消息。这种机制就叫做事件循环机制取一个消息并执行的过程叫做一次循环。
三、事件循环机制 上图大致描述就是 主线程运行时会产生执行栈栈中的代码调用某些 api 时它们会在事件队列中添加各种事件当满足触发条件后如 setTimeout 执行完毕而栈中的代码执行完毕就会读取事件队列中的事件去执行那些回调如此循环
注意总是要等待栈中的代码执行完毕后才会去读取事件队列中的事件
四、代码1
//打印5次 值5
for(var i0;i5;i){setTimeout(function(){console.log(i);},1000)}五、结果1 六、代码2
//几秒输出几?for(var i0;i3;i){setTimeout(function(){console.log(i);},1000*i);}
七、结果2
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927085.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!