setTimeout和setInterval区别?

间歇调用和超时调用
  超时调用:window对象的setTimeout()方法,指定时间后调用:
    setTimeout(function(){ // 推荐
      console.log(3)
    },1000);

    setTimeout('console.log(3)',1000); // 不推荐,字符串格式会影响性能

    setTimeout()返回一个数值ID表示表示超时调用,使用clearTimeout(ID)取消超时调用;

  间歇调用:window对象的setInterval(),指定时间重复执行:
    setInterval(function(){ // 推荐
      console.log(3)
    },1000);

  setInterval('console.log(3)',1000); // 不推荐,字符串格式会影响性能

  setInterval()返回一个数值ID表示表示超时调用,使用clearInterval(ID)取消间歇调用;

  注意:间歇和超时调用时,不一定会在指定时间后调用函数,这两种方法将会在指定时间后将函数添加到执行队列中,因为javascript是单线程的,如果执行队列中有其他要执行的函数,会依次执行(即这两种调用的函数将会在前面函数执行完毕后执行),如果队列中没有执行的函数,将会立即执行。一般情况下我们很少使用间歇调用,因为间歇调用可能导致,前一次间歇调用没有执行完毕后一次间歇调用就开始执行了。

猜你喜欢

转载自www.cnblogs.com/hyf120/p/9223225.html
今日推荐