js中的计时器

1、setTimeout计时器

setTimeout(要执行的方法,时间单位 (毫秒))

这里的执行方法通常是匿名函数(函数=方法)

setTimeout(function () {console.log('我是setTimeout计时器')
}, 2000)

setTimeout()意思:多少秒后执行函数,这里的意思就是:2秒后将在控制台打印“我是setTimeout计时器”


2、setInterval计时器

setInterval(要执行的方法,时间单位 (毫秒))

这里的执行方法通常是箭头函数

setInterval(() => {console.log('我是setInterval计时器')
}, 2000);

setInterval()意思:每隔多少秒执行函数,这里的意思就是:每隔2秒,将在控制台打印“我是setInterval计时器”

两者区别:setTimeout里的函数只会被执行一次,而setInterval里的函数会每隔多少秒执行一次。
需要注意:两者括号里面的第二个值,单位都是毫秒,1s=1000ms(1秒=1000毫秒),其他时间以此类推。

如何中止计时器(清除计时器)呢?

clearInterval()

clearInterval(清除哪一个计时器)

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<button onclick="myClick()">点击开始</button>
<button onclick="mystop()">点击停止</button><button onclick="myinterval()">点击开始interval</button>
<button onclick="mystopinterval()">点击停止interval</button><body><script>// 计时器// setTimeout(要执行的方法,时间单位 毫秒)let timefunction myClick() {// setTimeout(myFun(), 3000)time = setTimeout(function () {console.log('我也会执行')}, 2000)}// function myFun() {//   return function () {//     console.log('我是返回的函数')//   }// }function mystop() {// clearTimeout(哪一个timeout)clearTimeout(time)}//清除setInterval计时器let num = 0function sum() {console.log(num++)}let myinter //声明一个变量的去装setInterval()function myinterval() {myinter = setInterval(() => {sum()}, 2000);//每隔2秒sum()函数会被执行   即每隔2秒会num++,执行的尽头通常是无止境的(不关闭浏览器,除了清除计时器)}function mystopinterval() {clearInterval(myinter)}</script>
</body>
</html>

为啥要声明一个变量去装setInterval() (下面的代码块1),而不直接(下面的代码块2)?

代码块1:

//清除setInterval计时器
let num = 0
function sum() {console.log(num++)
}
let myinter //声明一个变量的去装setInterval()
function myinterval() {myinter = setInterval(() => {sum()}, 2000);//每隔2秒sum()函数会被执行    即每隔2秒会num++,执行的尽头通常是无止境的(不关闭浏览器,除了清除计时器)
}
function mystopinterval() {clearInterval(myinter)
}

代码块2:

//清除setInterval计时器
let num = 0
function sum() {console.log(num++)
}
function myinterval() {setInterval(() => {sum()}, 2000);//每隔2秒sum()函数会被执行   即每隔2秒会num++,执行的尽头通常是无止境的(不关闭浏览器,除了清除计时器)
}
function mystopinterval() {clearInterval( setInterval(() => { sum()}, 2000);)
}

函数是引用数据类型,引用数据类型在栈内存里(用于存放地址,用的时候去取),而实际函数体是在堆内存里,就是实际存放的东西。
而代码块2只是清除了栈内存里的,而没有清除堆内存里的
所以需要一个变量去装计时器的东西,清除时候只需在clearInterval()这个括号里写这个变量就可以清除掉了。


纸上来得终觉浅,绝知此事要躬行,自己试一试吧。

HTML——js设置计时器和清除计时器的方法相关推荐

  1. android h5app息屏定时器,H5案例分享:JS设置定时器和清除定时器

    JS设置定时器和清除定时器 在做项目中难免会碰到需要实时刷新,动画依次出现等等需求,这时候就需要定时器登上我们的代码舞台了,所以今天我们就先来了解一下JS定时器的设置和清除吧. 一.启用定时器 win ...

  2. html清空计时器,js设置定时器和清除定时器

    一.前言 在前端,我们有很多功能需要用到定时器.譬如轮询,譬如定时关闭弹框,譬如实现秒表,譬如一段时间后跳转页面等等.因此,我们需要掌握定时器的用法. 二.设置定时器 目前window对象提供有两个方 ...

  3. JS 设置定时器和清除定时器

    在做项目中难免会碰到需要实时刷新,动画依次出现等等需求,这时候就需要定时器登上我们的代码舞台了,所以今天我们就先来了解一下JS定时器的设置和清除吧. 一.启用定时器 window对象提供了两个方法来实 ...

  4. JS设置定时器和清除定时器

    最近在项目中频繁运用到js定时器,现在和大家分享一下方法.在前端开发的过程中,有些时候需要某段程序等待一段时间后再开始执行,在JavaScript中主要通过定时器实现这一类需求. JS的两种定时器 w ...

  5. 解决每次上线更新文件需要手动清除缓存的问题-------js 、css自动清除浏览器缓存方法

    说明 1.分享页更新后,浏览器总是有缓存,须手动清理才能加载修改后的CSS和JS,故在加载地址后动态添加一个随机数(或时间戳)来确保每次加载的文件都不同来消除缓存. 2.在加载js文件时,被加载js文 ...

  6. js获取和设置DIV元素class值的方法

    web页面中,利用js动态的改变div元素的class属性的值,可以实现很多的动态效果.比如动态修改div元素的背景颜色,改变字体的颜色等等.这篇文章就来说一说,javascript 如何获取和设置d ...

  7. js获取classname值_js获取和设置DIV元素class值的方法

    web页面中,利用js动态的改变div元素的class属性的值,可以实现很多的动态效果.比如动态修改div元素的背景颜色,改变字体的颜色等等.这篇文章就来说一说,javascript 如何获取和设置d ...

  8. js 计时器无法清除是为什么

    js 计时器无法清除是为什么 js 计时器无法清除?啊这... 当你定义了一个计时器,第一次清除--成功了,第二次.第三次--失败了 其实并不是计时器无法清除,只是因为你的清除手段有限,你应该检查一下 ...

  9. html 清除计时器 bug,js 计时器无法清除是为什么

    1.代码下方.简短说就是两个计时器让 div 向左或向右移动:两个button控制向左或向右的事件:当其中一个button按下时,设想让另一个button的计时器清除掉,通过function的形参判断 ...

最新文章

  1. android-sdk-windows下载版
  2. 企业路由器应用——DMZ口
  3. Java判断类和实例的关系
  4. 带电插拔损坏设备原理_热水器不用时,要不要拔插座?看完才知道,天天拔比不拔更危险...
  5. 【阿里妈妈数据科学系列】第三篇:离线抽样框架下的AB Test
  6. MATLAB xlswrite函数出现“错误: 服务器出现意外情况”
  7. php curl 伪造IP来源的代码分享
  8. Unity使用ARCore开发AR程序
  9. 我被开除了。。只因为看了骂公司的帖子
  10. oracle重建orainventory,重建oraInventory解决ORA-20001
  11. Python 爬虫抓取网站汇率并将结果保存到文件
  12. Oracle 10.2.0.3使用Logminor工具和把system表空间变成locally
  13. 如何在word里里面打勾
  14. matlab 在2k屏幕,如何将4k显示器的分辨率调整为2k,并将2k分辨率用于4k显示器
  15. 决策树算法的总结归纳
  16. 【数据分析师_02_SQL+MySQL】022_MySQL的全文检索(MyISAM,MATCH AGAINST)
  17. 计算机cpu和显卡的搭配要求,如何搭配CPU和显卡最合理
  18. 最贴心的营销 微信营销,微酷为你的营销保驾护航
  19. ubuntu系统下c语言入门以及编写简单程序
  20. vue中使用svg-icon遇到的坑

热门文章

  1. Jupyter notebook爬取猫眼top100电影信息(Xpath)
  2. python drf_067.Python框架Django之DRF视图类
  3. 东北之行(七)――东北那旮儿的人
  4. tp5能运行在php7吗,tp 5.0 php 7.0 nginx 配置
  5. Thinkphp5.0行为钩子Hook的用法
  6. Dubbo——扩展点详解
  7. USB 2.0 与USB EHCI 硬件接口
  8. tiny4412 linux-4.2 移植(七)USB 2.0 host框架(2)hcd(ehci主机控制器)
  9. rte_eal_init之内存配置初始化以及大页初始化
  10. java实现生成word文档