定时器的知识点总结

一、什么是 JavaScript 定时器

JavaScript 定时器是 JavaScript 提供的用于在指定时间间隔后执行代码的机制。它允许我们在程序中设置延迟执行或周期性执行的任务,为页面增添动态性和交互性。在 JavaScript 中,主要有两种类型的定时器:setTimeout() 和 setInterval(),它们各自有着独特的功能和应用场景。

二、setTimeout () 定时器

setTimeout() 方法用于设置一个定时器,该定时器在定时器到期后执行一次指定的函数或代码段。

window.setTimeout(调用函数, (延迟的毫秒数), 参数1, 参数2,...);

其中,window 可以省略;调用函数 可以是直接定义的函数、函数名,也可以是字符串形式的 '函数名()'(不过使用字符串形式类似 eval() 执行代码,存在安全风险,不推荐使用);延迟的毫秒数 表示等待多久后执行函数,省略时默认是 0,且必须以毫秒为单位;参数1, 参数2,... 是向延迟函数传递的额外参数(IE9 以上支持) 。

setTimeout(function () {
    console.log('三秒后执行我');
}, 3000);

上述代码会在 3 秒(3000 毫秒)后在控制台输出 “三秒后执行我”。这里的函数 function () { console.log('三秒后执行我'); } 就是回调函数,它不会立即执行,而是等待设定的时间结束后才被调用 。

停止 setTimeout () 定时器

如果我们想要在定时器到期之前取消它,可以使用 clearTimeout() 方法。

window.clearTimeout(timeoutID);

 window 可省略,timeoutID 是通过 setTimeout() 创建的定时器的标识符 。

var timeoutID = setTimeout(function () {
    console.log('本来应该执行我,但可能被取消');
}, 5000);
var cancelButton = document.querySelector('#cancelButton');
cancelButton.addEventListener('click', function () {
    clearTimeout(timeoutID);
});

在这个例子中,我们创建了一个 5 秒后执行的定时器。同时,给一个按钮添加了点击事件,当点击按钮时,通过 clearTimeout(timeoutID) 取消了定时器,这样定时器的回调函数就不会被执行 。

三、setInterval () 定时器

setInterval() 方法用于重复调用一个函数,每隔指定的时间间隔,就会去调用一次回调函数。

window.setInterval(回调函数, (间隔的毫秒数), 参数1, 参数2,...);

 同样,window 可省略;回调函数 的形式与 setTimeout() 中的类似;间隔的毫秒数 省略默认是 0,必须以毫秒为单位,表示每隔多久自动调用一次函数;参数1, 参数2,... 是传递给回调函数的额外参数 。

var count = 0;
var intervalID = setInterval(function () {
    count++;
    console.log('每隔一秒,我被执行一次,这是第 ' + count + ' 次');
}, 1000);

清除 setInterval () 定时器

当我们不再需要 setInterval() 定时器持续执行时,可以使用 clearInterval() 方法来取消它。

window.clearInterval(intervalID);

window 可省略,intervalID 是通过 setInterval() 创建的定时器的标识符 。

var startButton = document.querySelector('#startButton');
var stopButton = document.querySelector('#stopButton');
var intervalID;
startButton.addEventListener('click', function () {
    intervalID = setInterval(function () {
        console.log('定时器启动,持续执行');
    }, 2000);
});
stopButton.addEventListener('click', function () {
    clearInterval(intervalID);
});

 在这个示例中,点击 “开始” 按钮会启动一个定时器,每隔 2 秒在控制台输出信息;点击 “停止” 按钮则会通过 clearInterval(intervalID) 清除定时器,使其不再执行 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/975772.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络空间安全(2)应用程序安全

前言 应用程序安全(Application Security,简称AppSec)是一个综合性的概念,它涵盖了应用程序从开发到部署,再到后续维护的整个过程中的安全措施。 一、定义与重要性 定义:应用程序安全是指识别和修复应用程序…

【OS安装与使用】part5-ubuntu22.04基于conda安装pytorch+tensorflow

文章目录 一、待解决问题1.1 问题描述1.2 解决方法 二、方法详述2.1 必要说明2.2 应用步骤2.2.1 明确pytorch安装依赖2.2.2 conda创建虚拟环境2.2.3 安装pytorch2.2.4 验证pytorch安装2.2.5 安装Tensorflow2.2.6 验证Tensorflow安装 三、疑问四、总结 一、待解决问题 1.1 问题…

基于Python/Java的医院系统切换互联网医院深度编程对接探索

一、引言 1.1 研究背景与意义 在当今数字化时代,医疗行业的信息化进程不断加速,医院信息系统(Hospital Information System,HIS)作为医疗信息化的核心组成部分,对于提升医院管理效率、优化医疗服务质量起着至关重要的作用。随着互联网技术的飞速发展,互联网医院应运而…

从零开始的网站搭建(以照片/文本/视频信息通信网站为例)

本文面向已经有一些编程基础(会至少一门编程语言,比如python),但是没有搭建过web应用的人群,会写得尽量细致。重点介绍流程和部署云端的步骤,具体javascript代码怎么写之类的,这里不会涉及。 搭…

Linux权限(一)

文章目录 基本指令sudo权限chmod修改目标属性修改角色 修改权限属性目录权限缺省权限 基本指令 sudo 1. sudo是对指令的短暂提权的 2. 比如安装软件,安装到系统中,需要管理员root权限,这些命令其实只安装了一份,普通用户和超级用…

CV -- 基于GPU版CUDA环境+Pycharm YOLOv8 目标检测

目录 下载 CUDA 下载 cuDNN 下载 anaconda 安装 PyTorch pycharm 搭配 yolo 环境并运行 阅读本文须知,需要电脑中有 Nvidia 显卡 下载 CUDA 打开 cmd ,输入 nvidia-smi ,查看电脑支持 CUDA 版本: 我这里是12.0,进入…

R语言安装教程(附安装包)R语言4.3.2版本安装教程

文章目录 前言一、安装包下载二、R-4.3.2安装步骤三、rtools43安装步骤四、RStudio安装步骤 前言 本教程将详细、全面地为你介绍在 Windows 系统下安装 R 语言 4.3.2 的具体步骤。无论你是初涉数据领域的新手,还是希望更新知识体系的专业人士,只要按照本…

springBoot统一响应1.0版本

前言: 通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往…

【STM32】内存管理

【STM32】内存管理 文章目录 【STM32】内存管理1、内存管理简介疑问:为啥不用标准的 C 库自带的内存管理算法?2、分块式内存管理(掌握)分配方向分配原理释放原理分块内存管理 管理内存情况 3、内存管理使用(掌握&#…

DeepSeek 助力 Vue 开发:打造丝滑的二维码生成(QR Code)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

认知重构 | 自我分化 | 苏格拉底式提问

注:本文为 “认知重构 | 自我分化” 相关文章合辑。 心理学上有一个词叫:认知重构(改变 “非黑即白,一分为二” 的思维方式) 原创 心理师威叔 心理自救 2024 年 10 月 26 日 19:08 广东 你有没有过这样的时候&#x…

YARN的工作机制及特性总结

YARN hadoop的资源管理调度平台(集群)——为用户程序提供运算资源的管理和调度 用户程序:如用户开发的一个MR程序 YARN有两类节点(服务进程): 1. resourcemanager 主节点master ----只需要1个来工作 2. nod…

LLM2CLIP论文学习笔记:强大的语言模型解锁更丰富的视觉表征

1. 写在前面 今天分享的一篇论文《LLM2CLIP: P OWERFUL L ANGUAGE M ODEL U NLOCKS R ICHER V ISUAL R EPRESENTATION》, 2024年9月微软和同济大学的一篇paper, 是多模态领域的一篇工作,主要探索了如何将大模型融合到Clip模型里面来进一步提…

Win11更新系统c盘爆满处理

1.打开磁盘管理 2.右击c盘选择属性,进行磁盘管理,选择详细信息。 3.选择以前安装的文件删除即可释放c盘空间。

Spring面试题2

1、compareable和compactor区别 定义与包位置:Comparable是一个接口,位于java.lang包,需要类去实现接口;而Compactor是一个外部比较器,位于java.util包 用法:Comparable只需要实现int compareTo(T o) 方法,比较当前对…

2025年02月21日Github流行趋势

项目名称:source-sdk-2013 项目地址url:https://github.com/ValveSoftware/source-sdk-2013项目语言:C历史star数:7343今日star数:929项目维护者:JoeLudwig, jorgenpt, narendraumate, sortie, alanedwarde…

Django check_password原理

check_password 是 Django 提供的一个用于密码校验的函数,它的工作原理是基于密码哈希算法的特性。 Django 的 make_password 函数在生成密码哈希时,会使用一个随机的 salt(盐值)。这个 salt 会与密码一起进行哈希运算&#xff0…

如何在 SpringBoot 项目创建并使用 Redis 的详细介绍

本文是博主整理项目时整理出来的,项目使用 SpringBoot 框架,使用 Redis 作为缓存组件,用于缓存部分热点接口数据。 文章目录 一、Redis 的前置配置1、引入依赖2、单机配置3、集群配置4、两种配置路径解读 二、创建 Redis 配置类1、简易版 Red…

快速入门——第三方组件element-ui

学习自哔哩哔哩上的“刘老师教编程”,具体学习的网站为:10.第三方组件element-ui_哔哩哔哩_bilibili,以下是看课后做的笔记,仅供参考。 第一节 组件间的传值 组件可以有内部Data提供数据,也可由父组件通过prop方式传…

使用 Grafana 监控 Spring Boot 应用

随着软件开发领域的不断发展,监控和可观测性已成为确保系统可靠性和性能的关键实践。Grafana 是一个功能强大的开源工具,能够为来自各种来源的监控数据提供丰富的可视化功能。在本篇博客中,我们将探讨如何将 Grafana 与 Spring Boot 应用程序…