1 基本语法
JavaScript:setInterval() 用法详解_js setinterval-CSDN博客
setInterval() 是 JavaScript 中的一个内置函数,它用于在指定的间隔时间内重复执行一段代码,实现周期性操作。该函数的语法如下:
setInterval(function, milliseconds, param1, param2, ...)
2 参数说明
function
:必需,要重复执行的函数或代码块。milliseconds
:必需,重复执行的时间间隔(以毫秒为单位)。param1, param2, ...
:可选,传递给要执行的函数的参数。如果无须传递参数,则省略此参数。(没看懂)- 注意的问题:
-
如果 setInterval() 函数的时间间隔设为较小的值,那么可能会因为浏览器的性能限制而导致定时器不准确。建议将时间间隔设为 100 毫秒或以上,以保证计时器的准确性。
3 使用示例
使用匿名函数作为第一个参数,用来输出当前时间,间隔时间是1000毫秒即1秒钟
-
// 每秒钟输出一次当前时间 setInterval(function() {console.log(new Date().toLocaleTimeString()); }, 1000);
这里function() { console.log(new Date().toLocaleTimeString());代表的是一个函数方法,这个函数方法,是打印当地时间与日期为字符串。1000是设定时间,每1秒显示一次。
-
4 停止 setInterval() 方法
-
setInterval() 方法会返回一个计时器ID,可以通过该计时器ID来取消计时器的执行,方法如下:
-
intervalId = setInterval(function() {console.log(new Date().toLocaleTimeString()); }, 1000);clearInterval(intervalId );
示例: 打印5次后,取消计时器的执行。 <!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><body><script>var counter = 0;maxNum = 5;function myFunc() {var date = new Date();console.log(date.toLocaleTimeString());counter++;if (counter == maxNum) {clearInterval(intervalId);console.log('已打印' + maxNum + "次");}}var intervalId = setInterval(myFunc, 1000);</script> </body></html>
4.(官方推荐)
通过
$once
时间侦听器在定义完定时器之后的位置来清除定时器:mounted() {const timer = setInterval(() =>{ // 某些定时器操作 }, 500); // 通过$once来监听定时器,在beforeDestroy钩子可以被清除。this.$once('hook:beforeDestroy', () => { clearInterval(timer); }) }