做羞羞事的网站建网站要租服务器吗
news/
2025/10/9 2:25:39/
文章来源:
做羞羞事的网站,建网站要租服务器吗,wordpress数据查询插件,石家庄的网站公司哪家好参考文章#xff1a;深入理解JS引擎的执行机制 JavaScript 异步、栈、事件循环、任务队列 我的笔记#xff1a;ES系列之Promise async 和 await Event Loop 前提 js是单线程的 js的Event Loop是JS的执行机制#xff0c;深入了解JS的执行,就等于深入了解JS里的event …参考文章深入理解JS引擎的执行机制 JavaScript 异步、栈、事件循环、任务队列 我的笔记ES系列之Promise async 和 await Event Loop 前提 js是单线程的 js的Event Loop是JS的执行机制深入了解JS的执行,就等于深入了解JS里的event loop。 问js是为单线程的为什么要实现异步单线程怎么实现异步 答1、js的单线程能够保证对DOM操作的顺序性如果是多线程A线程编辑DOM上的内容B线程删除该DOM那么浏览器该怎么执行了。 2、因为js是自上而下执行的如果上一行解析很长时间下面的代码解析不了造成页面卡死。 3、通过事件循环机制实现异步 js的Event Loop1 demo1 console.log(1)setTimeout(function () {console.log(2)
}, 0)console.log(3) 执行结果1 3 2 首先我们知道js将任务分为同步任务和异步任务。 js的执行机制 判断当前执行代码是同步还是异步的同步就进入主线程执行异步就放到event table。 然后异步任务在event loop中注册函数当满足条件后就被推进event queue。 同步任务进入主线程一直执行知道主线程空闲时才会去event queue中查看是否有客执行的异步任务如果有就推入主线程中。 js的Event Loop2 script
console.log(1);
setTimeout(function(){console.log(2)
});new Promise(function(resolve){console.log(3);for(var i 0; i 10000; i){i 99 resolve();}
}).then(function(){console.log(4)
});console.log(5);
/script 按照上面的分析执行顺序为1 5 2 3 4但是实际的执行顺序为1 3 5 4 2 这是为什么呢 这是因为js将任务分为宏任务macro-task和微任务micro-task 宏任务包括script标签、setTimeout、setInterval 微任务包括Promiseprocess.nextTick 执行到script标签进入宏任务然后执行 setTimeout为宏任务放在任务队列中等待该宏任务以及该宏任务中的微任务执行完毕后执行 Promise准备开启微任务但是没有开启.then()进入微任务等待该宏任务执行完毕后执行该微任务 setTimeout setTimeout(function(){console.log(执行了)},3000) 我们一般说以上代码会在3s后执行但是准确的解释是: 3秒后,setTimeout里的函数被会推入event queue,而event queue(事件队列)里的任务,只有在主线程空闲时才会执行。 如果主线程执行了5s那么以上代码会在5s以及事件队列的前面的微任务执行完毕后执行。转载于:https://www.cnblogs.com/houfee/p/10550406.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/932143.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!