事件流逝触发的事件

这类事件不是基于用户针对可见Web页面元素执行的行为,而是基于时间的流逝。
和JavaScript中所有其他事件一样,这些时间流逝事件也是由函数处理的。


setTimeout()

捡重点说了

  • setTimeout允许添加更多的参数。它们将被传入推迟执行的函数

            setTimeout(function(a,b){alert(a+b);},1000,2,5)            // 7

    IE9以下不支持更多的参数,可以用apply或bind实现


  • setTimeout推迟执行的回调函数是在全局环境执行,这有可能不同于函数定义时的上下文环境。

        var x = 1;var o = {x: 2,y:function(){console.log(this.x);}};setTimeout(o.y,1000);        // 1// 另一个例子function User(login) {this.login = login;this.sayHi = function() {console.log(this.login);}}var user = new User('John');       setTimeout(user.sayHi, 1000);

this.login会报错,因为取不到值。

一种解决方法是将user.sayHi放在函数作用域内执行,而不是在全局作用域中。

       setTimeout(function(){user.sayHi();}, 1000);    // "John"

另一种方法,就是采用闭包,将this与当前作用域绑定。

        document.getElementById('click-ok').onclick = function() {var self = this;setTimeout(function() { self.value='OK';}, 100);}// setTimeout指定的函数中的this,总是指向定义时所在的DOM节点。

setInterval()

setInterval指定某个任务每隔一段时间就执行一次,也就是无限次的定时执行。

    <button onclick="clearInterval(time)">Stop!</button><script type="text/javascript">var counter = 0;var time = setInterval(function() {console.log(counter);counter++;},2000)

简易计数器,直到用户点击按钮

        function f() {for (var i=0;i<arguments.length;i++) {console.log(arguments[i]+" | "+arguments.length);}};setInterval(f,1000,1,2,3);// "1 | 3"// "2 | 3"// "3 | 3"

setTimeout一样,除了前两个参数,setInterval 方法还可以接受更多的参数,它们会传入回调函数

待.......

  • 定时器

  • 关于setInterval()和setTimeout()返回值

  • 关于setInterval()你所不知道的地方

JS setTimeout 与 setInterval相关推荐

  1. js setTimeout和setInterval区别

    1.区别 2.示例代码 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=&qu ...

  2. JS setTimeout和setInterval的区别

    1.setTimeout和setInterval都属于JS中的定时器,可以规定延迟时间再执行某个操作,不同的是setTimeout在规定时间后执行完某个操作就停止了,而setInterval则可以一直 ...

  3. js的事件循环机制:同步与异步任务(setTimeout,setInterval)宏任务,微任务(Promise,process.nextTick)...

    javascript是单线程,一切javascript版的"多线程"都是用单线程模拟出来的,通过事件循环(event loop)实现的异步. javascript事件循环 事件循环 ...

  4. js中setTimeout的用法和JS计时器setTimeout与setInterval方法的区别和confirm方法

    setTimeout()在js类中的使用方法 setTimeout (表达式,延时时间) setTimeout(表达式,交互时间) 延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTi ...

  5. js 定时器用法详解——setTimeout()、setInterval()、clearTimeout()、clearInterval()

    写在前面: 在js应用中,定时器的作用就是可以设定当到达一个时间来执行一个函数,或者每隔几秒重复执行某段函数.这里面涉及到了三个函数方法:setInterval().setTimeout().clea ...

  6. js 中 的时间类和 setTimeout 和setInterval

    首先贴代码 <!DOCTYPE html> <html><head><meta charset="UTF-8"><title& ...

  7. 用故事解析setTimeout和setInterval(内含js单线程和任务队列)

    用故事解析setTimeout和setInterval(内含js单线程和任务队列) 区别: setTimeout(fn,t): 延迟调用,超过了时间就调用回调函数,返回一个id,使用clearTime ...

  8. 前端开发:JS中setTimeout和setInterval的对比使用

    前言 在前端开发过程中,关于计时器的使用是非常常用的知识点,也是非常重要的,尤其是需要规定延迟多久之后再去执行某个操作.在JS的计时器使用中有setTimeout和setInterval,二者都是定时 ...

  9. 深入浅出JS定时器:从setTimeout到setInterval

    前言 当谈到 JavaScript 编程语言最基本的概念时,定时器就是一个必须掌握的知识点.在编写网站时,你经常会遇到需要在一定时间间隔内执行一些代码的情况.这时候,JavaScript 定时器就可以 ...

最新文章

  1. 解决软件安装中出现checking for FUSE... no方法一例
  2. AI机器人:机器人语音文本智能交互之自定义软件——实现模拟中本聪与V神跨时空畅谈
  3. postgresql - mac 启动 关闭 postgresql
  4. 惠普武汉实习生面试-20110320
  5. mysql终端_MySQL之终端(Terminal)管理MySQL
  6. cuda tensorflow版本对应_Windows10下安装tensorflow-gpu(2.2.0)安装教程(避坑+保姆式教学)...
  7. python的knn算法list_【风马一族_Python】 实施kNN算法
  8. 京东:笔试题(合唱队找剩余的最小值,考场安排搬出的人数尽可能少)
  9. python 列表切片学习
  10. 如何制作媲美memz的炫酷特效恶搞程序
  11. iphone java模拟器_电脑java模拟器 模拟器游戏
  12. 转:使用java生成数字验证码
  13. 学习笔记(04):2020软考软件设计师--基础知识实战培训视频-数据结构基础--树和二叉树...
  14. 电力-输配电知识汇总
  15. 在Linux中使用飞信发送手机短信
  16. android netcfg命令,Android netcfg
  17. ESD防护方法及设计要点
  18. CBL-Mariner
  19. 气氛组担当竟推出了表情包,快来一键Get!
  20. CSP J/S SH 迷惑行为大赏

热门文章

  1. JS制作常见通知信息(适用于手机通知信息和电脑通知信息)
  2. 歌词数据解析、歌词滚动、歌词进度控制功能的实现(基于js-base64、lyric-parser、better-scroll),以vue项目为例
  3. angular6允许局域网可访问
  4. C++的Matlab接口
  5. 1×pbs缓冲液配方_PBS缓冲液的配制
  6. freeCodeCamp 学习记录——初级算法「01」翻转字符串
  7. Linux学习笔记三
  8. 古典密码算法------替代密码算法
  9. 拼多多4.5元手表使用功能图
  10. matlab根据转移函数绘制放大器幅频响应和相频响应