Frond-End前端常见面试题JS相关

JS - 单线程与 setTimeout 执行原理

2017-03-04  本文已影响1598人  澄海风

Javascript 引擎单线程机制

浏览器的多线程机制与事件循环(event loop)

JavaScript中setTimeout的实现原理

实例分析

在具备了上述理论基础之后,我们对以下几个实例进行分析:

1.===========================================
```
var t = true;

  window.setTimeout(function (){
      t = false;
  },1000);
  
  while (t){}
  
  alert('end');
```

2.===========================================
```
var start = new Date();

  setTimeout(function(){  
      var end = new Date();  
      console.log("Time elapsed: ", end - start, "ms");  
  }, 500);  
    
  while (new Date - start <= 1000){}
```

3.===========================================

```
  for(var i=0;i<10;i++){
      setTimeout(function() {
          console.log(i);
      }, 0);
  }

```
```
   // 自执行函数 形成闭包 记忆其被创建时的环境
   for(var i=0;i<10;i++){
       setTimeout((function() {
            console.log(i);
       })(), 0);
   }
```

setTimeout(0)函数的作用

setTimeout 和 setInterval 在执行异步代码的时候有着根本的不同

上一篇下一篇

猜你喜欢

热点阅读