JS执行机制 同步异步

JS语言的一大特点:单线程,也就是说,同一个时间只能做一件事。

什么是同步,什么是异步?

同步指的是一次只能完成一件任务,如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。
异步指的是每一个任务有一个或者多个回调函数,前一个任务结束后不是执行后一个任务,而是执行回调函数,后一个任务不是等前一个任务结束就执行,所以程序的执行顺序和任务的排列顺序是不一致的、异步的。

他们的本质区别:这条流水线上各个流程的执行顺序不同。

同步任务

同步任务都在主线程上执行,形成一个执行栈。

异步任务

异步任务是通过回调函数实现的 ,异步任务放到任务队列里面。
异步任务有三种类型:
1、普通事件 如click、resize
2、资源加载 如load、error
3、定时器,包括setlnterval、setTimeout

JS执行机制:

JS执行机制 同步异步_第1张图片
由于主线程不断地重复获得任务,执行任务,再获得任务,再执行 所以这种机制叫做事件循环。
JS执行机制 同步异步_第2张图片

console.log(1);
document.onclick=function (){
   console.log("click");
};
   console.log(2);
   //执行输出顺序:1/2/click

你可能感兴趣的:(JavaScript,js执行机制,js)