js运行机制1

//同步任务执行完才会执行异步 1,2,3,0
console.log(1);
setTimeout(function(){
  console.log(2)
},0);
console.log(3)

//只会输出A,因为都是同步任务,while一直执行,所以不会执行到B
console.log('A');
while(true){}
console.log('B')

//只会输出A,因为同步任务执行完才会执行异步,while一直执行,所以只会执行b
consloe.log('A');
setTimeout(function(){
  console.log('B')
},0)
while(1){

}

//只会输出4个4,执行到异步的时候就会把setTimeout放入异步队列么?不是,浏览器会有一个tem 模块,主要
//处理setTimeout ,它是定时器到了那个时间才会把setTimeout放入异步队列,异步任务的放入时间和执行时间
for(var i=0; i<4; i++){
  setTimeout(function(){
    console.log(i)
  },1000)
}
//evetloop



//

  

posted @ 2019-05-29 19:50  糖糖部落  阅读(95)  评论(0)    收藏  举报