JS中的setTimeout和setInterval

基本要点:

  1. 两者都用于计时
  2. 两者都是异步任务
  3. JavaScript中首先执行主线程任务,其次执行异步任务
  4. 两者中的语句会立即执行,函数会延时执行。参考 js表达式和语句区别

目前就只感受到这几点,用程序来展示一下
关于要点1和2:

setTimeout(function(){console.log("1")},1000);
setTimeout(function(){console.log("2")},1000);

1和2基本上会同时出现,因为两个setTimeout几乎同时被加入到任务队列并计时,计时互不打扰,所以都会在一秒后执行相关命令。要想隔一秒再执行的效果,可以这样写。

setTimeout(function(){console.log("1")},1000);
setTimeout(function(){console.log("2")},2000);

关于要点3:

setTimeout(function(){console.log("1")},0);
console.log("2");

上面程序会先输出2,再输出1。因为setTimeout是异步任务,会被先放到任务队列,等主程序运行完之后再运行。

关于要点4:

setTimeout(console.log("1"),1000);
setTimeout(function(){console.log("2")},2000);

上面程序会立即输出1,然后过两秒后输出2。

你可能感兴趣的:(JS中的setTimeout和setInterval)