<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>定时器和延时器</title>
</head>
<body>
<button>清除定时器</button>
<script>
console.log('延时器代码之前');
var timer11 = setTimeout(function() {
// 异步. 延时器 等待固定时间后,调用一次 方法
console.log('进入延时器了, 只执行一次');
}, 1000); // 第二个参数 时间, 单位是毫秒, 1秒=1000毫秒, 延时器
console.log('延时器代码之后');
var timer12 = setInterval(function() {
// 定时器 无限循环, 每隔固定的时间,执行一次回调函数,除非清除掉定时器,否则不会停止
console.log('我一定会回来的');
}, 1000);
var btn = document.querySelector('button');
btn.onclick = function() {
// 清除定时器
console.log('清除定时器之前 -- timer11: ', timer11);
console.log('清除定时器之前 -- timer12: ', timer12);
console.log(timer11);
console.log(timer12);
clearInterval(timer12);
console.log('清除定时器之后 -- timer11: ', timer11);
console.log('清除定时器之后 -- timer12: ', timer12);
}
</script>
</body>
</html>
setInterval函数的返回值不是2,而是一个唯一的定时器标识符。这个标识符用于管理和控制定时器。
当您调用setInterval函数时,它会返回一个整数值作为定时器标识符。这个标识符在每个浏览器中都是唯一的,并且可以用来取消定时器。
setTimeout同理
上述运行结果: