千家信息网

setTimeout的第三个参数是什么及怎么用

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,今天小编给大家分享一下setTimeout的第三个参数是什么及怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收
千家信息网最后更新 2026年10月31日setTimeout的第三个参数是什么及怎么用

今天小编给大家分享一下setTimeout的第三个参数是什么及怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

我们先来看一段简单的代码:

setTimeout(function(x) {    console.log(x);}, 1000, 1);

控制台输出1,那么能不能继续加参数呢?我们继续来看下面这段代码:

setTimeout(function(x,y) {    console.log(x+y);}, 1000, 1, 2);

控制台输出的是3,很显然是第三和第四个参数的和。

看到这里很多小伙伴应该意识到了,是的,setTimeout的第三个参数作用就是给setTimeout第一个函数的参数。

通过查询MDN 我们能看到关于第三个参数的描述:

var timeoutID = scope.setTimeout(function[, delay, arg1, arg2, ...]);var timeoutID = scope.setTimeout(function[, delay]);var timeoutID = scope.setTimeout(code[, delay]);

所以,其实准确来讲,setTimeout可以有无数个参数,只是从第三个参数起,就是可选参数了。

好了,知道这个特性后我们可以解决什么问题呢?最经典的一个就是for循环内使用setTimeout了。

for(var i = 0; i<6; i++) {    setTimeout(function() {        console.log(i);    }, 1000);}

上面的这个例子是一个经典的面试题,它会连续输出6次6,因为setTimeout是一个异步操作,而等到执行setTimeout时,for循环已经执行完毕,这时的i已经等于6,所以输出6次的6。关于解决方法我总结了好几种,感兴趣的小伙伴可以看我的上一篇博客《关于for循环中使用setTimeout》,在这篇博客结尾我提到了使用setTimeout第三个参数,那我们再来看看这种方法。

for(var i=0;i<6;i++) {    setTimeout(function(j) {        console.log(j);    }, 1000, i);}

由于每次传入的参数是从for循环里面取到的值,所以会依次输出0~5。这当然还是作用域的问题,但是在这里setTimeout第三个参数却把i的值给保存了下来。这种解决方法比使用闭包轻快的多。

另外,第三个参数也可以作为函数来使用。

for(var i=0;i<6;i++) {    setTimeout(function(j) {        console.log(j);    }, 1000, i);}

最后依次输出为,第一次0、第二次1。

可以看到第三个参数还可以是先执行,然后再执行函数。


下面是MDN上关于兼容性的描述:

Note: Passing additional arguments to the function in the first syntax does not work in Internet Explorer 9 and below. If you want to enable this functionality on that browser, you must use a polyfill (see the Polyfill section).

以上就是"setTimeout的第三个参数是什么及怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

参数 三个 输出 就是 知识 篇文章 循环 函数 方法 代码 作用 内容 博客 小伙 小伙伴 控制台 经典 问题 面的 控制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 广州为想互联网科技有限公司 广州大一互联网络科技有限公司 关于新基建和互联网科技 互联网科技金融 中国 科技 互联网 喔噻互联网科技 碳银互联网科技 佩信高科技互联网 太原新华互联网科技学校怎么样 富国互联网科技创新基金 承德科技产业互联网发展 互联网科技教育视频 南平创想时代互联网科技有限公司 广州新华互联网科技学校电竞方面 小米互联网科技园入驻 互联网科技股为什么大涨 互联网科技融合创新 山东大美朱楼互联网科技有限公司 互联网科技职业技能培训学校 工业互联网科技新基建 科技服务与互联网 奇酷互联网科技 碳银互联网科技 互联网科技小额贷款 北京大学互联网科技怎么样 中国航天科技大学国际工业互联网 互联网公司黑科技创始人 山东星卡互联网科技有限公司官网 恒生科技互联网指数十大成分股
0