单线程特点执行异步操作
js是单线程语言,浏览器只分配给js一个主线程,使用来执行任务(函数),但一次只可以执行一个任务,这些任务就会排队形成一个任务队列排队等候执行.一般而已,相对耗时的操作是要通过异步来进行加载,能避免导致页面的假死.
1
2
3
setTimeout(function(){
console.log(这是timeout事件回调);
},1000);
执行这段代码的时候,浏览器异步执行计时操作,传入setTimeout的函数会被暂存起来,当1000ms到了后,会触发定时事件,这个时候,就会把回调函数放到任务队列里,待所有程序执行完,处于空闲的状态时,会立马看看有没有暂存起来要执行的任务,整个程序就是通过这样的一个个事件驱动起来的,如下图1.1所示: