JS setTimeout 与 setInterval
事件流逝触发的事件
这类事件不是基于用户针对可见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相关推荐
- js setTimeout和setInterval区别
1.区别 2.示例代码 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=&qu ...
- JS setTimeout和setInterval的区别
1.setTimeout和setInterval都属于JS中的定时器,可以规定延迟时间再执行某个操作,不同的是setTimeout在规定时间后执行完某个操作就停止了,而setInterval则可以一直 ...
- js的事件循环机制:同步与异步任务(setTimeout,setInterval)宏任务,微任务(Promise,process.nextTick)...
javascript是单线程,一切javascript版的"多线程"都是用单线程模拟出来的,通过事件循环(event loop)实现的异步. javascript事件循环 事件循环 ...
- js中setTimeout的用法和JS计时器setTimeout与setInterval方法的区别和confirm方法
setTimeout()在js类中的使用方法 setTimeout (表达式,延时时间) setTimeout(表达式,交互时间) 延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTi ...
- js 定时器用法详解——setTimeout()、setInterval()、clearTimeout()、clearInterval()
写在前面: 在js应用中,定时器的作用就是可以设定当到达一个时间来执行一个函数,或者每隔几秒重复执行某段函数.这里面涉及到了三个函数方法:setInterval().setTimeout().clea ...
- js 中 的时间类和 setTimeout 和setInterval
首先贴代码 <!DOCTYPE html> <html><head><meta charset="UTF-8"><title& ...
- 用故事解析setTimeout和setInterval(内含js单线程和任务队列)
用故事解析setTimeout和setInterval(内含js单线程和任务队列) 区别: setTimeout(fn,t): 延迟调用,超过了时间就调用回调函数,返回一个id,使用clearTime ...
- 前端开发:JS中setTimeout和setInterval的对比使用
前言 在前端开发过程中,关于计时器的使用是非常常用的知识点,也是非常重要的,尤其是需要规定延迟多久之后再去执行某个操作.在JS的计时器使用中有setTimeout和setInterval,二者都是定时 ...
- 深入浅出JS定时器:从setTimeout到setInterval
前言 当谈到 JavaScript 编程语言最基本的概念时,定时器就是一个必须掌握的知识点.在编写网站时,你经常会遇到需要在一定时间间隔内执行一些代码的情况.这时候,JavaScript 定时器就可以 ...
最新文章
- 解决软件安装中出现checking for FUSE... no方法一例
- AI机器人:机器人语音文本智能交互之自定义软件——实现模拟中本聪与V神跨时空畅谈
- postgresql - mac 启动 关闭 postgresql
- 惠普武汉实习生面试-20110320
- mysql终端_MySQL之终端(Terminal)管理MySQL
- cuda tensorflow版本对应_Windows10下安装tensorflow-gpu(2.2.0)安装教程(避坑+保姆式教学)...
- python的knn算法list_【风马一族_Python】 实施kNN算法
- 京东:笔试题(合唱队找剩余的最小值,考场安排搬出的人数尽可能少)
- python 列表切片学习
- 如何制作媲美memz的炫酷特效恶搞程序
- iphone java模拟器_电脑java模拟器 模拟器游戏
- 转:使用java生成数字验证码
- 学习笔记(04):2020软考软件设计师--基础知识实战培训视频-数据结构基础--树和二叉树...
- 电力-输配电知识汇总
- 在Linux中使用飞信发送手机短信
- android netcfg命令,Android netcfg
- ESD防护方法及设计要点
- CBL-Mariner
- 气氛组担当竟推出了表情包,快来一键Get!
- CSP J/S SH 迷惑行为大赏