Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >js内置对象---计时器对象

js内置对象---计时器对象

原创
作者头像
IT工作者
发布于 2022-03-29 02:13:11
发布于 2022-03-29 02:13:11
2.5K00
代码可运行
举报
文章被收录于专栏:程序技术知识程序技术知识
运行总次数:0
代码可运行

js内置对象---计时器对象

一、计时器对象简介

二、一次性计时器

1. 一次性计时器的写法

2. 清除计时器

三、循环计时器

1. 一次性计时器的写法

2. 清除计时器

四、帧计时器

1. 设置兼容性

2. 移除计时器

五、把一次性计时器写成循环计时器

1. 写法

2. 移除计时器

六、三个计时器的区别

一、计时器对象简介

计时器对象分类

计时器对象分为一次性计时器,循环计时器,帧计时器(跟电脑的刷新频率有关)

二、一次性计时器

计时器的参数有string||function delay ms

ms—延迟多少毫秒后执行

1. 一次性计时器的写法

写法1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   window.setTimeout(function(){
       console.log("常规代码");
   },1000)    

写法2

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   //可以不写前缀window
   setTimeout(function(){
       console.log("常规代码");
   },1000)

写法3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   //函数的提前声明
   setTimeout(loop,2000);
   function loop(){
       console.log("执行");
   }

写法4

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   function loop(){
       console.log("执行");
   }

//字符串形式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   setTimeout("loop()",2000);

2. 清除计时器

使用变量接收计时器对象

返回值是数值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   var timer=setTimeout(function(){
       console.log("执行");
   },1000);
   console.log(timer);//1
   //清除计时器
   clearTimeout(timer);

三、循环计时器

和一次性计时器一致,只不过是循环执行。

1. 一次性计时器的写法

写法1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   setInterval(function(){
       console.log("执行");
   },1000)

写法2

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   setInterval(loop,1000);
   function loop(){
       console.log("执行");
   }
   setInterval("loop()",1000);

2. 清除计时器

使用变量接收计时器对象

返回值是数值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   var count=0;
   var timer;
   timer=setInterval(function(){
       count++;
       console.log(count);
       if(count>9)
       {
           console.log(timer);//1
           clearInterval(timer);
       }
   },1000)

四、帧计时器

根据屏幕的刷新频率执行的计时器,不需要设置时间。

回调函数执行次数通常是每秒60次。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   var count=0;
   loop();
   function loop(){
       count++;
       console.log(count);
       window.requestAnimationFrame(loop);
   }

1. 设置兼容性

//设置兼容性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   var requestFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame
   ||window.webkitRequestAnimationFrame ||window.msRequestAnimationFrame||function(callback){
       setTimeout(callback,1000/60);
   };
   var count=0;
   loop();
   function loop(){
       count++;
       console.log(count);
       requestFrame(loop);
   }

2. 移除计时器

//设置兼容性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   var requestFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame
   ||window.webkitRequestAnimationFrame ||window.msRequestAnimationFrame||function(callback){
       setTimeout(callback,1000/60);
   };
   var cancelFrame=window.cancelAnimationFrame||window.mozCancelAnimationFrame
   ||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame||function(timer){
       clearTimeout(timer);
   };

//移除计时器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   var timer;
   var count=0;
   loop();
   function loop(){
       count++;
       console.log(count);
       if(count>19){
           cancelFrame(loop);
           return;
       }
       timer=requestFrame(loop);
   }

五、把一次性计时器写成循环计时器

1. 写法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   var num=0;
   loop();
   function loop(){
       num++;
       console.log("输出", num);
       setTimeout(loop,1000);
   }

2. 移除计时器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   var num=0;
   var timer;
   loop();
   function loop(){
       num++;
       console.log("输出", num);
       if(num>9){
           clearTimeout(timer);
           return;
       }
       timer=setTimeout(loop,1000);
   }

六、三个计时器的区别

一次性计时器和循环计时器在浏览器窗口失去焦点的时候还会执行。

帧计时器在浏览器窗口失去焦点的时候会自动暂停。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于前端的计时器工具:实现与优化
在前端开发中,计时器是一个常见的工具,广泛应用于倒计时、定时任务、间隔刷新等场景。本文将介绍如何在前端实现一个通用的计时器工具,并通过实例深入探讨其优化和应用。
一键难忘
2024/10/12
6181
requestAnimationFrame实现动画效果
html动画一般会采用css3的形式去做,当然也比较建议用css去做动画。但是有时候一些动画只能使用js来完成,常用的js动画方案是使用计时器来完成。编写动画循环的一个关键在于我们要延迟多长时间比较合适,如何设置时间才能让动画显得平滑顺畅,这个时间并不是越小越好,因为要遛狗足够的时间间隔来让浏览器产生渲染变化,否则就会变成跳跃感。
OECOM
2020/07/02
2.1K0
JS--异步的日常用法
这两个名词确实是很多人都常会混淆的知识点。其实混淆的原因可能只是两个名词在中文上的相似,在英文上来说完全是不同的单词。
江拥羡橙
2023/12/09
3352
JS--异步的日常用法
js异步编程面试题你能答上来几道
在上一节中我们了解了常见的es6语法的一些知识点。这一章节我们将会学习异步编程这一块内容,鉴于异步编程是js中至关重要的内容,所以我们将会用三个章节来学习异步编程涉及到的重点和难点,同时这一块内容也是面试常考范围。
loveX001
2022/10/10
5150
从一个超时程序的设计聊聊定时器的方方面面
企业项目开发中经常有这样一个逻辑场景:在界面上显示倒计时,时间到了给出提示,禁止用户操作。
LIYI
2022/03/08
1.5K0
从一个超时程序的设计聊聊定时器的方方面面
关于JavaScript计时器的知识学习
推特上大约一半的回答都是错误的。答案并不是 V8(或者虚拟机)!!虽然“JavaScript”计时器” 很出名,但是 setTimeout 和 setInterval 函数并不是 ECMAScript 规范或者任何 JavaScript 引擎实现。定时器由浏览器实现,在不同浏览器中的实现也会有所不同,Node.js 也实现了自己的定时器。
coder_koala
2020/12/17
1.7K0
关于JavaScript计时器的知识学习
JS深入浅出 - requestAnimationFrame
早期 JS 定时动画:主要通过 setTimeout 和 setIntarval 实现。 HTML5 出现后:又出现了两种实现动画的方式,1. CSS 动画(transition、animation)2. H5的 canvas 实现。 与此同时,HTML5 还提供了一个专门用于请求动画的 API requesetAniamtionFrame(),统一了 DOM 动画、canvas动画、svg动画、webGL动画等的刷新机制。
Qwe7
2022/03/28
1.8K0
JavaScript异步编程
平时开发经常会用到js异步编程,由于前端展示页面都是基于网络机顶盒(IPTV的一般性能不太好,OTT较好),目前公司主要采取的异步编程的方式有setTimeout、setInterval、requestAnimationFrame、ajax,为什么会用到异步呢,就拿业务来说,若前端全部采取同步的方式,那加载图片、生成dom、网络数据请求都会大大增加页面渲染时长。
Jack Chen
2018/09/14
9300
JavaScript异步编程
Web前端学习 第3章 JavaScript基础教程17 计时器方
计时器方法可以实现在指定的时间过后,单次或重复调用函数的功能,setTimeout可以实现函数在指定毫秒数后单次执行,setInterval可以实现函数在指定毫秒数后重复执行,语法如下所示:
学习猿地
2020/06/17
1.6K0
Web前端学习 第3章 JavaScript基础教程17 计时器方
# JavaScript 专题之 This 和定时器
思维导图:https://naotu.baidu.com/file/7d05ddb397c649f62136040993cbd04bopen in new window
九旬
2023/10/18
1880
# JavaScript 专题之 This 和定时器
清除所有定时器计时器
今天也是心血来潮,之前做一个需求是手机号绑定和邮箱绑定的,都需要获取验证码倒计时,还要弹窗打开就恢复默认,其实就是清除计时器。
wade
2021/02/23
2.3K0
清除所有定时器计时器
JavaScript设置定时器、取消定时器及执行机制解析
今天整理了一下 JavaScript 定时器,顺便了解了一下 JavaScript 的运行机制,现在记录一下。
德顺
2019/11/12
5K0
javascript入门笔记7-计时器
该文介绍了JavaScript中常用的计时器,包括setTimeout、setInterval和clearTimeout。每种计时器都有其独特的用法和功能。在文章中还提供了两个示例,一个是使用setTimeout实现的无穷循环计数器,另一个是使用setInterval和clearTimeout实现的取消计时器。
方志朋
2017/12/29
1.2K3
js中setTimeout的用法和JS计时器setTimeout与setInterval方法的区别和confirm方法
setTimeout()在js类中的使用方法 setTimeout (表达式,延时时间) setTimeout(表达式,交互时间) 延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTimeout 在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次 setTimeout 在执行时,它从载入后,每隔指定的时间就执行一次表达式 1,基本用法: 执行一段代码: var i=0; setTimeout("i+=1;alert(i)",1000); 执行一个函数: var i=0
用户7657330
2020/08/14
3.3K0
JavaScript中的一次性定时器和周期性定时器
上面这种方式,如果要清除定时器,是不能清除的,只能在设置定时器的时候,定义一个变量来接收定时器的返回值,这样才可以清除定时器。
青年码农
2021/03/04
6.2K0
解释 JavaScript 中计时器的工作原理
在 JavaScript 中,计时器是一个非常值得注意的功能。与普通的手表计时器一样,我们可以一次启动计时器,并在特定时间后执行 JavaScript 中的函数或代码。
很酷的站长
2023/01/08
1.6K0
解释 JavaScript 中计时器的工作原理
前端js手写题经常忘,记录一下
使用时间戳的节流函数会在第一次触发事件时立即执行,以后每过 wait 秒之后才执行一次,并且最后一次触发事件不会被执行
helloworld1024
2022/09/23
1K0
【如果你要学JS {十一}】——window常见事件,灵活运用定时器
BOM ( Browser Object Model )即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心 对象是window,BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性。 BOM缺乏标准, JavaScript 语法的标准化组织是ECMA , DOM的标准化组织是W3C , BOM最初是Netscape浏 览器标准的一部分。
像素人
2023/12/24
1.1K0
【如果你要学JS {十一}】——window常见事件,灵活运用定时器
社招前端必会面试题
label标签来定义表单控件的关系:当用户选择label标签时,浏览器会自动将焦点转到和label标签相关的表单控件上。
bb_xiaxia1998
2022/09/13
7010
JavaScript Event Loop
JavaScript 有一个基于事件循环的并发模型,事件循环负责执行代码、收集和处理事件以及执行队列中的子任务。事件循环包含一个函数执行栈、一个宏任务队列、一个微任务队列。在说事件循环之前,需要说几个名词定义。
多云转晴
2020/03/26
1.4K0
JavaScript Event Loop
相关推荐
基于前端的计时器工具:实现与优化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验