在JavaScript中,可以按指定的时间间隔执行一段代码。这些时间间隔称为计时事件。
有两种方法可以按特定的时间间隔执行代码。他们是:
- setInterval()
- setTimeout()
在本教程中,您将学习setInterval()
方法。
JavaScript setInterval()
setInterval()
方法在每个给定的定时事件处重复一个代码块。
JavaScript setInterval的常用语法为:
setInterval(function, milliseconds);
其参数为:
- 函数 -包含代码块的函数
- 毫秒 – 函数执行之间的时间间隔
setInterval()
方法返回一个intervalID ,它是一个正整数。
示例1:每1秒显示一次文本
// program to display a text using setInterval method
function greet() {
console.log('Hello world');
}
setInterval(greet, 1000);
输出
Hello world
Hello world
Hello world
Hello world
Hello world
....
在上面的程序中, setInterval()
方法每1000毫秒( 1秒) 调用一次greet()
函数 。
因此,程序每1秒显示一次文本Hello world 。
注意 :如果要多次重复一个代码块,则setInterval()
方法很有用。例如,以固定的时间间隔显示一条消息。
示例2:每5秒显示一次
// program to display time every 5 seconds
function showTime() {
// return new date and time
let dateTime= new Date();
// return the time
let time = dateTime.toLocaleTimeString();
console.log(time)
}
let display = setInterval(showTime, 5000);
输出
"5:15:28 PM"
"5:15:33 PM"
"5:15:38 PM"
....
上面的程序每5秒显示一次当前时间。
newDate()
给出当前日期和时间。并且toLocaleTimeString()
返回当前时间。要了解有关日期和时间的更多信息,请访问JavaScript日期和时间。
JavaScript clearInterval()
如上例所示,该程序在每个指定的时间间隔执行一个代码块。如果要停止此函数调用,则可以使用clearInterval()
方法。
clearInterval()
方法的语法为:
clearInterval(intervalID);
在这里, intervalID
是setInterval()
方法的返回值。
示例3:使用clearInterval()方法
// program to stop the setInterval() method after five times
let count = 0;
// function creation
let interval = setInterval(function(){
// increasing the count by 1
count += 1;
// when count equals to 5, stop the function
if(count === 5){
clearInterval(interval);
}
// display the current time
let dateTime= new Date();
let time = dateTime.toLocaleTimeString();
console.log(time);
}, 2000);
输出
4:47:41 PM
4:47:43 PM
4:47:45 PM
4:47:47 PM
4:47:49 PM
在上面的程序中, setInterval()
方法用于每2秒显示当前时间。 clearInterval()
方法在5次之后停止函数调用。
您还可以将其他参数传递给setInterval()
方法。语法为:
setInterval(function, milliseconds, parameter1, ....paramenterN);
当您将其他参数传递给setInterval()
方法时,这些参数( parameter1
, parameter2
等)将传递给指定的函数 。
例如,
// program to display a name
function greet(name, lastName) {
console.log('Hello' + ' ' + name + ' ' + lastName);
}
// passing argument to setInterval
setInterval(greet, 1000, 'John', 'Doe');
输出
Hello John Doe
Hello John Doe
Hello John Doe
....
在上面的程序中,两个参数John
和Doe
传递给setInterval()
方法。这两个参数是将传递给setInterval()
方法内部定义的函数的参数。
注意:如果只需要执行一次函数 ,则最好使用setTimeout()方法 。