定时器
window对象提供了定时器功能。定时器的功能是:在规定的时间自动执行某个函数。
在浏览器中,window是JavaScript的Global对象(全局对象)。此外,window也表示一个包含DOM文档的浏览器窗口(标签页)或框架,其document属性指向浏览器窗口或框架中载入的DOM文档。
window有很多属性和方法,例如,我们已经见过无数次的console.log()方法;
示例如下。
window.console.log(‘’);
调用window下的方法时,一般可以省略window,因此,上述代码可以简写为:
console.log(‘’);
根据执行的机制,定时器分为“间歇定时器”和“延迟(超时)定时器”,前者是每间歇一段时间就会执行指定的函数;后者是在指定的时间到期后就会执行指定的函数。间歇定时器会以指定的间歇时间作为周期循环不断地执行函数;而延迟定时器则只在时间到期时执行一次函数。
一、间歇定时器的创建与清除
间歇定时器的创建使用window对象的setInterval()方法。在JS中,对象方法的调用格式通常为:对象名。方法,但由于window对象是全局对象,访问同一个窗口中的方法时,可以省略对象名“window”,所以对window对象方法,通常都是直接使用方法。使用setInterval()创建间歇定时器的格式如下:
[定时器对象ID = ]setInterval(函数调用|函数定义,毫秒);
语法说明:setInterval()主要包含两个参数,第一个参数就是定时器需要定时执行的函数,该参数可以是一个用函数名表示的函数调用语句,也可以是一个函数定义语句,示例如下:
function fn(){
console.log('创建间歇定时器');
}
setInterval(fn,1000);//定时器第一个参数为函数调用语句
//以上代码等效下面的代码:
setInterval(function(){
console.log('创建间歇定时器');
},1000);//定时器的第一个参数为函数定义语句,注:其中定义的函数可以是匿名或有名,但通常都定义为匿名
上面的代码每隔1s在控制台输出’ 创建间歇定时器’。
setInterval()第二参数是一个单位为毫秒的数值(表示执行第一个参数指定操作所需的等待时间)。该方法表示每隔由第二个参数设定的毫秒数,就执行第一个参数指定的操作。setInterval()执行后将返回一个唯一的数值ID。
通过定时器返回的ID,可以清除定时器。清除间歇定时器的格式如下:
clearInterval(定时器对象ID);
下面使用倒计时的示例演示间歇定时器的创建和清除。
【示例1】间歇定时器的创建和清除。
<!doctype html>
<html>
<head>
<