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. JEECG支付宝服务窗开发培训视频
  2. APUE(第七章)进程环境
  3. python黑科技库:FuckIt.py,让你代码从此远离bug
  4. Confluence 6 有关空间的一些提示
  5. 首席数据官成为企业转型中的重要角色之一
  6. LeetCode Count Numbers with Unique Digits(计数问题)
  7. jquery之图片懒加载(总结)
  8. python某行某列读取数据_使用scrpython从某行的第一列提取数据
  9. 老员工恳请加薪,老板“不愿意做就辞职”
  10. mysql函数做条件_MySQL语句优化(三):避免条件字段做函数操作
  11. 并发编程之多线程基础-Thread和Runnable的区别及联系(二)
  12. SharePoint Designer - View
  13. 在Android Studio 和 Eclipse 的 git 插件操作 代码提交以及代码冲突
  14. javascript div z-index, input tabindex属性说明
  15. hexo添加_hexo 添加标签和分类
  16. 将有道云词典单词本导入到墨墨背单词
  17. 新闻抓取门道全面解析
  18. Android Gatekeeper梳理
  19. 【总结】DeepCTR如何构建模型
  20. 定时器:setTimeout()

热门文章

  1. PAPR论文阅读笔记1之Performance Analysis of Deliberately Clipped OFDM Signals
  2. 生活大爆炸版剪刀石头布
  3. Emmet插件的使用教程
  4. top日常(参数详解)
  5. pipy 的whl和egg的区别
  6. Java Web项目运行一直提示ClassNotFoundException
  7. 基于黑群晖 NAS 搭建 Hexo 博客系统
  8. 开源软件历史十大杰出人物--值得学习
  9. Android圆形头像的绘制(三)之多人头像的实现
  10. html 线条 样式,HTML5+CSS3从入门到精通 线条样式如何设置