javascript - 为什么会跳秒
PHPz
PHPz 2017-04-10 15:36:47
[JavaScript讨论组]
setInterval(function () {
    var date=new Date();
    console.log(date.getSeconds());
},1000)

为什么这个函数不是一秒一秒的输出,而是隔2秒输出一次?
PHPz
PHPz

学习是最好的投资!

全部回复(6)
巴扎黑

setIntervalsetTimeout添加的执行,并不是说多少时间后一定会执行,而是在多少时间后将要运行的部分加入运行队列中,所以这个时间不是肯定准确的。

如以下代码,输出hehe的时间就不止1秒:

setTimeout(function(){console.log('hehe')}, 1000);

var ii = 10000;
while(ii-- >= 0){
    console.log('haha');
}

所以跳秒的原因是别的Js代码在运行,使setInterval要执行的延迟了。

可以看下这篇文章 阮一峰的网络日志 >> JavaScript 运行机制详解:再谈Event Loop

ringa_lee

是一秒一秒的输出啊

PHPz

你把那1000给我删了!!!看看API自带的Direction

ringa_lee

时间也许会不是1s。 但是绝对不会出现每次都是2s

PHP中文网

js的定时器会有偏差(具体参考这篇文章:http://ued.fanxing.com/date-with-settimout/),但是你这种情况,在IE上笔记本电脑没有插电源线的情况下会有可能出现

阿神

不知道楼主是怎么出现这种情况的,我测试并没有出现该情况。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号