setInterval定时器计时时刻测试

本文探讨了JavaScript中setInterval函数计时起点的问题,并通过一个具体示例对比了不同情况下定时器开始计时的时机。在Chrome浏览器下,实验结果显示计时起点是在JS运行时执行到setInterval时开始。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function formatDate(date){
	console.log(date.getFullYear()+"-"+(date.getMonth()+1)+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds()+":"+date.getMilliseconds());
}

var timer ;
function test(){

		
	timer = setInterval(function(){
			console.log('interval');
	},30000);
	
	var startDate = new Date();
	var now = new Date();
	
	for(var i =0; i<5; i++){
		formatDate(startDate);
		// 5 second
		while(new Date () - startDate < 5*1000){
			
		}

		startDate = new Date();
	}
	
}

test();

测试setInterval开始倒计时的时刻

test函数(主逻辑)执行5×5=25秒,定时器设定为30秒后执行,

A.如果JS运行时执行到setInterval时便开始计算时间,那么test函数执行完,大概5秒(30-25)左右,开始第一次输出interval

B.如果JS运行时执行完test主逻辑以后,开始计算时间,那么test函数执行完,大概30秒,开始第一次输出interval

 

在chrome下输出按照A猜想执行,IE/FireFox没有测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值