| 关键词: 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
ARTEX搭配DeepSeek等模型击穿韩国三家大银
网安动态
2462人已阅读
3
推荐GitHub开源书籍 —《#高性价比人生指南
生活
1350人已阅读
4
FBI宣布逮捕了黑掉他们系统的黑客组织Shiny
网安动态
5900人已阅读
5
从代码分析到授权争议:一用户用AI破解IDM
业界
1352人已阅读
6
黑客团伙 ShinyHunters 声称攻破 FBI 系统
网安动态
1617人已阅读
社区热门
1
━※☆※━★===二〇二六年论坛每日签到帖=
2026-03-13
2
2006年注册的老人泪流满面
2026-10-12
3
十几年没回来了,回来看看。顺便做个记号
2026-08-15
4
多年以后我又回来了,报道贴
2026-08-11
5
人工智能最终是否替代人类??人类该何去何
2026-07-22
|