当前位置: 首页 > news >正文

JavaScript定时器详解:setTimeout与setInterval的使用与注意事项

在JavaScript中,定时器用于在指定的时间间隔后或周期性地执行代码。JavaScript 提供了两种主要的定时器函数:setTimeoutsetInterval。以下是它们的详细解释和实现方式:

1. setTimeout

setTimeout 函数用于在指定的毫秒数后执行一次函数。

语法

setTimeout(function, delay, [param1, param2, ...])
  • function:要执行的函数。
  • delay:设置延迟执行的时间(以毫秒为单位)。
  • [param1, param2, ...](可选):要传递给函数的参数。

示例

setTimeout(function() {console.log("这条消息将在3秒后显示");
}, 3000);

或者使用箭头函数:

setTimeout(() => {console.log("这条消息将在3秒后显示");
}, 3000);

2. setInterval

setInterval 函数用于每隔指定的毫秒数重复执行函数。

语法

setInterval(function, delay, [param1, param2, ...])
  • function:要执行的函数。
  • delay:设置重复执行的时间间隔(以毫秒为单位)。
  • [param1, param2, ...](可选):要传递给函数的参数。

示例

setInterval(function() {console.log("这条消息将每隔2秒显示一次");
}, 2000);

或者使用箭头函数:

setInterval(() => {console.log("这条消息将每隔2秒显示一次");
}, 2000);

清除定时器

对于使用 setTimeoutsetInterval 创建的定时器,可以使用 clearTimeoutclearInterval 函数来清除它们,从而停止定时执行。

清除 setTimeout

let timeoutId = setTimeout(() => {console.log("这条消息将不会显示,因为定时器被清除了");
}, 3000);// 清除定时器
clearTimeout(timeoutId);

清除 setInterval

let intervalId = setInterval(() => {console.log("这条消息将只显示一次,因为定时器被清除了");
}, 1000);// 在1秒后清除定时器
setTimeout(() => {clearInterval(intervalId);
}, 1000);

注意事项

  1. 时间精度setTimeoutsetInterval 的时间间隔并不总是精确的,因为它们受到JavaScript事件循环和浏览器实现的影响。
  2. 最小延迟:浏览器通常有一个最小的定时器延迟(通常为4毫秒),因此设置的时间间隔小于这个值将会被提升到最小延迟。
  3. 内存管理:确保在不需要时清除定时器,以避免内存泄漏和不必要的资源消耗。
  4. 嵌套使用:在定时器的回调函数中再次设置定时器时要小心,这可能会导致难以调试和维护的代码。
  5. 异步性setTimeoutsetInterval 的回调函数是在异步队列中执行的,这意味着它们不会阻塞其他代码的执行。

相关文章:

JavaScript定时器详解:setTimeout与setInterval的使用与注意事项

在JavaScript中,定时器用于在指定的时间间隔后或周期性地执行代码。JavaScript 提供了两种主要的定时器函数:setTimeout 和 setInterval。以下是它们的详细解释和实现方式: 1. setTimeout setTimeout 函数用于在指定的毫秒数后执行一次函数…...

CSS——选择器、PxCook软件、盒子模型

选择器 结构伪类选择器 作用&#xff1a;根据元素的结构关系查找元素。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&quo…...

Mysql 大表limit查询优化原理实战

文章目录 1 大表查询无条件优化&原理(入门)2 大表查询带 条件 优化&原理(进阶)2.1 where 后面的查询字段只有一个时&#xff0c;要求该字段是索引字段2.2 where 后面的查询字段有多个时&#xff0c;尽量让查询字段为索引字段且字段值基数大 3 大表查询带 排序 优化&…...

在vscode中开发运行uni-app项目

确保电脑已经安装配置好了node、vue等相关环境依赖 进行项目的创建 vue create -p dcloudio/uni-preset-vue 项目名 vue create -p dcloudio/uni-preset-vue uni-app 选择模版 这里选择【默认模版】 项目创建成功后在vscode中打开 第一次打开项目 pages.json 文件会报错&a…...

【JavaEE初阶 — 多线程】Thread的常见构造方法&属性

目录 Thread类的属性 1.Thread 的常见构造方法 2.Thread 的几个常见属性 2.1 前台线程与后台线程 2.2 setDaemon() 2.3 isAlive() Thread类的属性 Thread 类是JVM 用来管理线程的一个类&#xff0c;换句话说&#xff0c;每个线程都有一个唯一的Thread 对象与之关联&am…...

ctfshow(316)--XSS漏洞--反射性XSS

Web316 进入界面&#xff1a; 审计 显示是关于反射性XSS的题目。 思路 首先想到利用XSS平台解题&#xff0c;看其他师傅的wp提示flag是在cookie中。 当前页面的cookie是flagyou%20are%20not%20admin%20no%20flag。 但是这里我使用XSS平台&#xff0c;显示的cookie还是这样…...

ubuntu22.04安装conda

在 Ubuntu 22.04 上安装 Conda 可以通过以下步骤进行&#xff1a; 下载 Miniconda&#xff08;轻量级版本的 Conda&#xff09;&#xff1a; 打开终端并运行以下命令以下载 Miniconda 安装脚本&#xff1a; wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-…...

D58【python 接口自动化学习】- python基础之异常

day58 异常捕获 学习日期&#xff1a;20241104 学习目标&#xff1a;异常 -- 74 自定义异常捕获&#xff1a;如何定义业务异常&#xff1f; 学习笔记&#xff1a; 自定义异常的用途 自定义异常的方法 # 抛出一个异常 # raise ValueError(value is error) # ValueError: val…...

Java项目实战II基于Spring Boot的便利店信息管理系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在快节奏的…...

Java-日期计算工具类DateCalculator

DateCalculator是用于日期计算的工具类。这个工具类将包括日期的加减、比较、周期计算、日期 范围生成等功能。 import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.Period; import java.time.temporal.ChronoUnit;…...

单片机串口接收状态机STM32

单片机串口接收状态机stm32 前言 项目的芯片stm32转国产&#xff0c;国产芯片的串口DMA接收功能测试不通过&#xff0c;所以要由原本很容易配置的串口空闲中断触发DMA接收数据的方式转为串口逐字节接收的状态机接收数据 两种方式各有优劣&#xff0c;不过我的芯片已经主频跑…...

ipv6的 fc00(FC00::/7) 和 fec0(FEC0::/10)

ipv6的 fc00(FC00::/7)&#xff08;唯一本地地址&#xff09; 替代了 fec0(FEC0::/10) &#xff08;站点本地地址&#xff0c;已弃用&#xff09; ipv6的 fc00(FC00::/7) 替代了 fec0(FEC0::/10) , 在IPv6地址中&#xff0c;FC00::/7&#xff08;通常简写为FC00&#xff09;和…...

Chat GPT英文学术写作指令

目录 Chat GPT英文学术写作指令 Chat GPT英文学术写作指令 1."为我捉供一些建议和技巧,以提高我的学术写作质最和风格" (Provide me with some suggestions andtips to improve the quality andstyleofmyacademic writing.) 2."帮我提写一个清晰而有逻辑的…...

超详细Pycharm安装汉化教程,Python环境配置和使用指南,Python零基础入门看这个就够了!

包含编程资料、学习路线图、源代码、软件安装包等&#xff01;【[点击这里]】&#xff01; PyCharm 是由 JetBrains 打造的一款 Python IDE &#xff08;集成开发环境&#xff0c;Integrated Development Environment&#xff09;&#xff0c;带有一整套可以帮助用户在使用 Py…...

react-native:解决使用webView后部分场景在安卓10崩溃闪退问题

app闪退问题原因&#xff1a; 安卓7以上版本&#xff08;7和7以下版本不会出现闪退&#xff09;&#xff1a;在屏幕不可视区域加载webView或者webView不在可视区域内切换页面时app崩溃闪退&#xff08;在屏幕可视区域加载webView或者webView在可视区域内切换页面不会闪退&…...

大数据工具 flume 的安装配置与使用 (详细版)

参考网址&#xff1a;Flume 1.9用户手册中文版 — 可能是目前翻译最完整的版本了 1&#xff0c;上传安装包 安装包链接&#xff1a;文件下载-奶牛快传 Download &#xff5c;CowTransfer 口令&#xff1a;x8bhcg 1&#xff0c;切换盘符到安装目录 cd /opt/moudles 解压文件…...

智慧城市智慧城市项目方案-大数据平台建设技术方案(原件Word)

第1章 总体说明 1.1 建设背景 1.2 建设目标 1.3 项目建设主要内容 1.4 设计原则 第2章 对项目的理解 2.1 现状分析 2.2 业务需求分析 2.3 功能需求分析 第3章 大数据平台建设方案 3.1 大数据平台总体设计 3.2 大数据平台功能设计 3.3 平台应用 第4章 政策标准保障…...

C语言比较两个字符串是否相同

在不使用string.h中的内置函数的情况下 #include <stdio.h> #include <string.h> void main(){char arr1[]"hello world";char arr2[]"hello world";int i,a0;if(strlen(arr1)!strlen(arr2)){print("不相等");return 0;}for(i0;arr…...

丹摩征文活动|FLUX.1图像生成模型:AI工程师的创新实践

文章目录 一、对"FLUX.1"系列模型版本分析 二、AI工程师与FLUX.1系列模型 三、ComfyUI在线部署四、FLUX.1在线部署五、添加工作流呈现效果图展示六、总结 黑森林实验室&#xff08;Black Forest Labs&#xff09;推出的FLUX.1图像生成模型&#xff0c;凭借120亿参数的…...

ZABBIX API获取监控服务器OS层信息

Zabbix 是一款强大的开源监控解决方案,能够通过其 API 接口自动化管理和获取监控数据。在这篇文章中,详细讲解如何通过 Zabbix API 批量获取服务器的系统名称、IP 地址及操作系统版本信息,并将数据保存到 CSV 文件中。本文适合对 Python 编程和 Zabbix 监控系统有一定基础的…...

手把手教你用HuggingFace+BGE模型搭建本地向量检索系统(附FAISS实战代码)

从零构建基于BGE模型的本地语义搜索系统&#xff1a;代码级实践指南 在信息爆炸的时代&#xff0c;如何快速从海量文本中精准找到相关内容&#xff1f;语义搜索技术正成为解决这一痛点的利器。不同于传统的关键词匹配&#xff0c;语义搜索能理解查询背后的意图&#xff0c;找到…...

告别运行库安装烦恼:如何用VisualCppRedist AIO一站式解决Windows依赖问题

告别运行库安装烦恼&#xff1a;如何用VisualCppRedist AIO一站式解决Windows依赖问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 在使用Windows电脑时&…...

实测联想小新Pro 16 GT:一台把性能、AI和续航拉满的AI PC

最近体验了联想小新Pro 16 GT AI元启版&#xff0c;它不像是传统轻薄本&#xff0c;更像一台兼顾便携、性能和智能体验的全能机型。抛开品牌滤镜&#xff0c;单看硬件和实际使用&#xff0c;确实有不少值得一说的亮点。外观轻薄耐看&#xff0c;屏幕和接口都很实在这台机器用了…...

MCP 实现深度技术报告

1. MCP 协议概述与架构定位 1.1 协议背景 Model Context Protocol (MCP) 是 Anthropic 推出的开放标准协议&#xff0c;旨在标准化 AI 助手与外部数据源、工具之间的集成方式。在 Claude Code 中&#xff0c;MCP 不仅是外部集成接口&#xff0c;更是核心架构组件&#xff0c;…...

合规刚需下,游戏行业适合的内网通讯软件怎么选

一、背景 2026年&#xff0c;游戏行业在合规监管、信创推进与降本增效三重驱动下&#xff0c;内部协作与数据安全需求持续升级。《数据安全法》《网络安全法》对游戏企业研发代码、运营数据、用户信息的存储与传输提出明确合规要求&#xff0c;数据泄露、权限失控、协作低效等…...

测试文章111

这是一篇测试的内容&#xff0c;要进行agent的测试...

MacOS自动操作神器:3个隐藏功能一键搞定桌面整理(附脚本)

MacOS自动操作神器&#xff1a;3个隐藏功能一键搞定桌面整理&#xff08;附脚本&#xff09; 每次打开Mac电脑&#xff0c;看到满屏的文件和图标&#xff0c;是不是感觉工作效率瞬间降了一半&#xff1f;特别是视频创作者和设计师&#xff0c;桌面上经常堆满素材和半成品&#…...

InvokeAI工具函数库:10个核心工具方法与实用辅助函数详解

InvokeAI工具函数库&#xff1a;10个核心工具方法与实用辅助函数详解 【免费下载链接】InvokeAI Invoke is a leading creative engine for Stable Diffusion models, empowering professionals, artists, and enthusiasts to generate and create visual media using the late…...

不止是打字机效果:手把手教你用SpannableStringBuilder打造Android富文本AI对话界面

超越基础文本渲染&#xff1a;用SpannableStringBuilder构建专业级AI对话界面 在移动应用开发中&#xff0c;AI对话界面的用户体验往往决定了产品的专业度。传统的TextView虽然能显示文字&#xff0c;但要实现类似DeepSeek等专业AI产品的交互效果&#xff0c;需要深入掌握Andro…...

从生活沟通到AI对话:写好提示词,用好AI的魔法钥匙

一个顿悟&#xff1a;从复杂技术到简单提示最近与一位从事软件开发的朋友交流&#xff0c;他提出了一个颇具启发性的构想&#xff1a;将软件的售后客服工作交给AI来处理。起初&#xff0c;他的思路充满了技术复杂性——计划向AI提供核心代码库、训练一个专属的客服模型、进行深…...