| 关键词: setTimeout 函数 参数 代码 数名 console 方法 1000 上面 两个 | ||||||||||||||
JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成。它们向任务队列添加定时任务。初始接触它的人都觉得好简单,实时上真的如此么?这里记载下,一路对其使用姿势变迁的历程。 1, setTimeout()基础setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。
上面代码中,setTimeout函数接受两个参数,第一个参数func|code是将要推迟执行的函数名或者一段代码,第二个参数delay是推迟执行的毫秒数。
上面代码的输出结果就是1,3,2,因为setTimeout指定第二行语句推迟1000毫秒再执行(如果这在Sublime下运用插件以nodejs环境来执行,许解释器不同,会报错)。 需要注意的是,推迟执行的代码必须以字符串的形式,放入setTimeout,因为引擎内部使用eval函数,将字符串转为代码。如果推迟执行的是函数,则可以直接将函数名,放入setTimeout。一方面eval函数有安全顾虑,另一方面为了便于JavaScript引擎优化代码,setTimeout方法一般总是采用函数名的形式,就像下面这样。
setTimeout传参数除了前两个参数,setTimeout还允许添加更多的参数。它们将被传入推迟执行的函数(回调函数)。
上面代码中,setTimeout共有4个参数。最后那两个参数,将在1000毫秒之后回调函数执行时,作为回调函数的参数。 IE 9.0及以下版本,只允许setTimeout有两个参数,不支持更多的参数;可以在匿名函数中,让回调函数带参数运行,再把匿名函数输入setTimeout;例如:
当然也可以使用bind或apply方法来解决。 例如使用bind方法,把多余的参数绑定在回调函数上面,生成一个新的函数输入setTimeout。
上面代码中,bind方法第一个参数是undefined,表示将原函数的this绑定全局作用域,第二个参数是要传入原函数的参数。它运行后会返回一个新函数,该函数不带参数。 setTimeout注意点setTimeout()中回调函数中的this
最新评论
72小时资讯榜
2
19岁黑客跨三国换IP狂奔,还是被Windows一
网安动态
337人已阅读
3
18K Star,让AI自己跑渗透测试,这个开源项
渗透测试
321人已阅读
4
一个 1.5B 的模型,把网络安全攻防都装进了
安全学院
355人已阅读
5
多家电商遭“银狐”木马攻击,央视披露细节
网安动态
556人已阅读
6
手机也能AI养龙虾:安卓和iOS版OpenClaw应
AI动态
530人已阅读
社区热门
1
━※☆※━★===二〇二六年论坛每日签到帖=
2026-03-13
4
从上大学一直玩黑基 到现在已经37岁 感谢黑
2025-06-03
6
好久没来这里了,居然能正常登录,佩服站长
2025-05-19
|