JavaScript 中有两种计时器,一种为 setTimeout 计时器,一种为 setInterval 计时器。
setTimeout 计时器允许设置一个超时对象,超时后执行这个对象,但只执行一次。
setInterval 计时器允许设置一个超时对象,超时后执行这个对象,重复执行,周期为这个对象的指定时间。
1. setTimeout:
第一个参数为要执行的对象, 第二个参数为时间(毫秒 ms )。
setTimeout("alert('this is test')", 2000);2. setInterval:
第一个参数为要执行的对象,第二个参数为时间(毫秒 ms )。
setInterval(function(){
var time = new Date().getTime();
console.log(time);
}, 1000);
function interval(callback, delay){
let id = setInterval(() => callback(id), delay);
}
interval(function(id){
console.log(id);
}, 1000)
3. 异步编程:
JS 是单线程的,但对于浏览器来说,JS 的执行只不过是在浏览器众多现成中的一条。即有多条线程同步执行,每个线程可以理解为一个对象。先执行完的线程先渲染。
setTimeout(() => {
console.log('setTimeout渲染完成.');
}, 2000);
console.log('完成');
// 结果为 先输出完成,在输出 setTimeout渲染完成。