setTimeout()
方法在指定时间后执行一段代码。该方法仅执行一次代码。
JavaScript setTimeout 的常用语法是
setTimeout(function, milliseconds);
其参数为
- function - 包含一段代码的 函数
- milliseconds - 函数执行后的时间(毫秒)
setTimeout()
方法返回一个 intervalID,它是一个正整数。
示例 1:3 秒后显示一次文本
// program to display a text using setTimeout method
function greet() {
console.log('Hello world');
}
setTimeout(greet, 3000);
console.log('This message is shown first');
输出
This message is shown first Hello world
在上面的程序中,setTimeout()
方法在 3000 毫秒(3 秒)后调用 greet()
函数。
因此,程序在 3 秒后仅显示一次 “Hello world” 文本。
注意:如果您想在一段时间后执行一次代码块,setTimeout()
方法很有用。例如,在指定时间后向用户显示消息。
setTimeout()
方法返回 interval id。例如,
// program to display a text using setTimeout method
function greet() {
console.log('Hello world');
}
let intervalId = setTimeout(greet, 3000);
console.log('Id: ' + intervalId);
输出
Id: 3 Hello world
示例 2:每 3 秒显示一次时间
// program to display time every 3 seconds
function showTime() {
// return new date and time
let dateTime= new Date();
// returns the current local time
let time = dateTime.toLocaleTimeString();
console.log(time)
// display the time after 3 seconds
setTimeout(showTime, 3000);
}
// calling the function
showTime();
输出
5:45:39 PM 5:45:43 PM 5:45:47 PM 5:45:50 PM ..................
上面的程序每 3 秒显示一次时间。
setTimeout()
方法在时间间隔(此处为 3 秒)后仅调用一次函数。
然而,在上面的程序中,由于函数调用了自身,程序每 3 秒显示一次时间。
此程序将无限运行(直到内存耗尽)。
注意:如果您需要多次执行函数,最好使用 setInterval()
方法。
JavaScript clearTimeout()
如您在上面的示例中看到的,程序在指定的时间间隔后执行一段代码。如果您想停止此函数调用,可以使用 clearTimeout()
方法。
clearTimeout()
方法的语法是
clearTimeout(intervalID);
这里,intervalID
是 setTimeout()
方法的返回值。
示例 3:使用 clearTimeout() 方法
// program to stop the setTimeout() method
let count = 0;
// function creation
function increaseCount(){
// increasing the count by 1
count += 1;
console.log(count)
}
let id = setTimeout(increaseCount, 3000);
// clearTimeout
clearTimeout(id);
console.log('setTimeout is stopped.');
输出
setTimeout is stopped.
在上面的程序中,setTimeout()
方法用于在 3 秒后增加 count 的值。然而,clearTimeout()
方法停止了 setTimeout()
方法的函数调用。因此,count 的值没有增加。
注意:您通常在需要取消 setTimeout()
方法调用之前执行它时使用 clearTimeout()
方法。
您还可以向 setTimeout()
方法传递其他参数。语法是
setTimeout(function, milliseconds, parameter1, ....paramenterN);
当您向 setTimeout()
方法传递其他参数时,这些参数(parameter1
, parameter2
等)将被传递给指定的 function。
例如,
// program to display a name
function greet(name, lastName) {
console.log('Hello' + ' ' + name + ' ' + lastName);
}
// passing argument to setTimeout
setTimeout(greet, 1000, 'John', 'Doe');
输出
Hello John Doe
在上面的程序中,将两个参数 John
和 Doe
传递给了 setTimeout()
方法。这两个参数将传递给 setTimeout()
方法中定义的函数(此处为 greet()
函数)。
另请阅读