在使用JavaScript的过程中,我们可能要去使用定时器,而JavaScript就拥有其自带的定时功能
延时执行 setTimeout()
消除计时器 clearTimeout(timerId);
具体使用:
console.log(1);
/**
* 第一个参数是代码,注意代码需用引号包裹,否则会立即执行代码
* 第二个参数是 1000,即 1000ms 后执行 console.log(2)
*/
setTimeout('console.log(2)', 1000);
/**
* 第一个参数是匿名函数
* 第二个参数是 2000,即 2s 后执行 console.log(3)
*/
setTimeout(function () {
console.log(3);
}, 2000);
// 第一个参数是函数名,注意函数名后不要加小括号“()”,否则会立即执行 print4
setTimeout(print4, 3000);
console.log(5);
function print4() {
console.log(4);
}
其结果为
// 立即执行
console.log(1);
// 立即执行
console.log(5);
// 1s 后执行
console.log(2);
// 2s 后执行
console.log(3);
// 3s 后执行
print4(); // 即:console.log(4)
利用此方法,我们可以拥有计时功能如:
// 首先定义计时总秒数,单位 s
let i = 60;
// 定义变量用来储存定时器的编号
let timerId;
// 写一个函数,这个函数即每次要执行的代码,能够完成上述的 1、2、3
function count() {
console.log(i);
i--;
if (i > 0) {
timerId = setTimeout(count, 1000);
} else {
// 清除计时器
clearTimeout(timerId);
}
}
// 首次调用该函数,开始第一次计时
count();
除了延时执行 setTimeout()以外,JavaScript还存在
无限调用 setInterval()
与setTimeout()相比,无限调用的意思为每隔一段时间调用一次函数,(延时执行则是隔一段时间再执行)
同样需要 消除计时器 clearTimeout(timerId);