Web前端必做笔记之一:javascript运行机制(一)单线程
<script>
// 首先我们来思考下面的问题
console.log(1);
setTimeout(()=>{console.log(2)},0);
setTimeout(()=>{console.log(3)},0);
setTimeout(()=>{console.log(4)},0);
console.log(5);
// 输出结果为1,5,2,3,4
// 这里我们要知道什么是同步,什么是异步?
// 同步:一个程序是同步,从头到尾会一个一个执行。
// 异步:先执行一部分,等待结果(或到时间)再执行后续代码
// 同步程序执行完成后,执行异步程序
</script>
for (let i = 0;i<2000;i++){
console.log(1);
}
setTimeout(()=>{console.log(2)},0);
setTimeout(()=>{console.log(3)},0);
setTimeout(()=>{console.log(4)},0);
console.log(5);
// 如果是这样输出呢,会输出2000个1,时间就肯定超过0毫秒,那计时器是准还是不准呢?
// js是单线程的,一个任务完成之后才能执行另一个任务,所以计时器是不准的
根据以上总结:
1.同步:一个程序是同步,从头到尾会一个一个执行。
2.异步:先执行一部分,等待结果(或到时间)再执行后续代码
3.同步程序执行完成后,执行异步程序
4.js是单线程的,一个任务完成之后才能执行另一个任务,所以计时器是不准的