javascript中的setTimeout和Cleartimeout实例

388 阅读1分钟

有时,你想在等待时间后执行代码。

javascript提供了settimeoutclearTimeout 方法来执行和取消一个时间段的计时器。

SetTimeout 是用来在配置的时间(以毫秒为单位)等待或经过后执行代码的。

它只执行一次。

下面是一个语法

setTimeout(callbackfunction,timeinmilliseconds)
setTimeout("callbackfunction()",timeinmilliseconds)

callbackfunction是一个在给定时间后执行的函数。

timeinmilliseconds是一个以毫秒为单位的时间。一秒钟是1000。

返回值是一个表示定时器的id,可以传递给clearTimeout()来取消定时器。

Internet Explorer 11,接受第三个参数。下面是一个在3秒后执行回调函数的例子

console.log("start")
  timeout = setTimeout(callbackfunction, 3000);

function callbackfunction() {
console.log("callbackfunction")

}
console.log("end")

输出

start
end
callbackfunction

clearTimeout() 方法用于在以毫秒为单位的时间后停止函数的执行。

下面是一个例子

console.log("start")
  timeout = setTimeout(callbackfunction, 3000);

function callbackfunction() {
console.log("callbackfunction")

}
clearTimeout(timeout)
console.log("end")

输出

你只能在IE11中传递函数参数,其他浏览器不支持。

console.log("start")
  timeout = setTimeout(callbackfunction, 3000,"John");

function callbackfunction(str) {
console.log("callbackfunction: ",str)

}
clearTimeout(timeout)
console.log("end")

输出:你只能在IE11中传递函数参数,其他浏览器不支持。

start
end
callbackfunction John

同样地,你可以在回调中调用带有参数的函数。

setTimeout(function(){
  myfunction(str,str1,str3,... strN);
}, 1000);

function myfunction(str,str1,str3,... strN) {
console.log("callbackfunction: ",str)

}

注意事项:浏览器关闭或页面退出后,超时对象会自动取消。