定时器setTimeout和setInterval

js计时器有下面两种方法:

  • setTimeout()
  • setInterval()

setTimeout()和setInterval()经常被用来处理延时和定时任务。
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式(即只执行一次),而setInterval()则可以在每隔指定的毫秒数循环调用函数或表达式(以指定时间为周期循环执行),直到clearInterval()把它清除。
基于两种方法的特点:
一般情况下setTimeout()用于延迟执行某方法或功能,
setInterval()则一般用于刷新表单,对于一些表单的假实时指定时间刷新同步

当然setTimeout()也可以实现setInterval()的功能,如下:
setTimeout(function () {
            //code
            setTimeout(arguments.callee, interval);//使用了agrument.callee 来获取当前实行函数的引用
        }, interval)
原理:

将setTimeout包含于被执行函数中,然后在函数外再次使用setTimeout来达到定时执行的目的,这样,函数外的setTimeout在执行函数时再次触发setTimeout从而形成周而复始的定时效果。
在此处用到arguments的callee属性,这个属性是一个指针,指向拥有这个arguments对象的函数,即这个匿名函数。

关于arguments:函数内部有一个特殊对象arguments

  • arguments用来记录函数的参数,比如函数 pattern()中,第一个参数是 message。用 arguments[0] 可以访问这个值,即第一个参数的值,第二个参数以此类推。
  • 还可以用arguments.length来检测函数的参数个数
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInt...
    晚晴幽草阅读 1,686评论 1 18
  • JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInt...
    许先生__阅读 620评论 0 1
  •   JavaScript 是一种极其灵活的语言,具有多种使用风格。   一般来说,编写 JavaScript 要么...
    霜天晓阅读 783评论 0 0
  • 秋日私语 秋水长天 轻纱曼妙绕山间, 盈盈秋水天一...
    秋水长天_42b2阅读 187评论 0 0
  • 沉戟秣马豪血沙场 君临天下无唯尔心
    司辰沫凉阅读 159评论 0 2