找回密码
 注册账号

QQ登录

只需一步,快速开始

《泰拉瑞亚下载-1.4.2.3版》 泰拉瑞亚服务器 - MOD模组下载

入驻泰拉战网 新手指引 - 升级 - 师徒

泰拉瑞亚合成表 泰拉卡牌 - 泰拉江湖 - 泰拉刺客

联系泰拉开发组👈进入 积分市场 - 房产交易 - 水晶获取

查看: 2734|回复: 0

[JS] js-循环执行一个函数

[复制链接]
小丑
法师

1757

主题

1025

回帖

1225

广播

出类拔萃

玄觞诉语诗琪华

积分
5185
泰拉
5858
水晶
5
铜钥匙
0
银钥匙
0
金钥匙
0

【江湖新秀】【基友证明】【水贴恶魔】【新官上任三把火】【高朋满座】【论坛蘑菇党】【我很聪明证】【我是小土豪】【宝剑回鞘】【QQ达人】【伪娘证书】【我素软妹纸】【超级玛丽】【泰拉达人】【我是巫婆】【营养快线】【文艺青年证】【动漫迷】【社区最高荣誉勋章】【奥运选手】【香水有毒】【朋友控】【我很囧证】【有头有脸】【萝莉控】【视频爱好者】【宠物·缘定三生】【发帖机器】【速递达人】【潜水高手】【我很萌证】【我是公主】

QQ
发表于 2020-8-19 22:43:00 | 显示全部楼层 |阅读模式
js-循环执行一个函数
js里的两个内置函数:setInterval()与setTimeout()提供了定时的功能,前者是每隔几秒执行一次,后者是延迟一段时间执行一次。javascript 是一个单线程环境,定时并不是很准,遇到阻塞的操作会延迟,代码:
  1. <script>
  2. var fn = function(){
  3.         alert("fn()函数被执行了");
  4.     }
  5.      
  6.     setInterval(fn,1000);
  7. </script>
复制代码
以上代码会每隔一分钟弹窗,如果不关闭弹窗。Js不会在下一秒执行这个函数。也就说,被阻塞了。
除了setInterval()实现函数重复执行外,还可以用setTimeout()实现函数重复执行。是这么做的:
  1. <script>
  2.     var fn = function(){
  3.         alert("fn()函数被执行了");
  4.         setTimeout(fn, 1000)
  5.     }
  6.      
  7.     fn();
  8. </script>
复制代码
代码中用setTimeout()调用自身。这样函数执行一次,会一直延迟一段时间调用自身,实现了函数重复执行,是不是觉得很妙?看过许多网页上用到的jquery倒计时插件,都是用setTimeout()来重复执行函数。
setTimeout()执行顺序有个坑,看下面的代码,你觉得控制台输出的结果是什么:
  1. <script>
  2. setTimeout(function() {
  3.         console.log(1);
  4. }, 0);
  5. console.log(2);
  6. </script>
复制代码
答案是先输出2,再输出1。这跟我们的直觉是不一致的。当事件队列为空的时候,才执行SetTimeout()里面的代码。



获得 大福神卡 一张

卡片说明:琉璃映雪照幽月 遇到 [好色的朝歌] 被啪啪啪了 91 完事之后他给你付了 泰拉.

卡片效果:获得 91 泰拉


原神元素工坊

泰拉宝石
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|友链申请|Archiver|手机版|小黑屋|游芯沙盒 ( 陕ICP备11006283号-1 )

GMT+8, 2024-5-3 17:46 , Processed in 0.118185 second(s), 45 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表