Javascript 为什么每秒钟设置一次setTimeuot console.log?

Javascript 为什么每秒钟设置一次setTimeuot console.log?,javascript,Javascript,为什么setTimeout函数每秒记录一次console.log,而不增加计数 for(设i=1;i{ setTimeout(函数(){ 控制台日志(a); },a*1000); })(i); }第一次通过循环i=1,这意味着i*1000将在1秒后调用第一个计时器。然后,在循环继续后,再次调用立即调用的函数,这将导致在循环中的哪个点创建第二个计时器i=2。因此,i*1000将是2000毫秒。当i等于3和4时,这种情况也会发生。因此,将按如下方式调用您的控制台.log: console.log使

为什么setTimeout函数每秒记录一次console.log,而不增加计数

for(设i=1;i{
setTimeout(函数(){
控制台日志(a);
},a*1000);
})(i);

}
第一次通过循环
i=1
,这意味着
i*1000
将在1秒后调用第一个计时器。然后,在循环继续后,再次调用立即调用的函数,这将导致在循环中的哪个点创建第二个计时器
i=2
。因此,
i*1000
将是
2000
毫秒。当
i
等于3和4时,这种情况也会发生。因此,将按如下方式调用您的
控制台.log

  • console.log
    使用第一个计时器在1秒(1000毫秒)时调用
  • console.log
    在2秒(2000毫秒)的时间内使用第二个计时器调用
  • console.log
    使用第三个计时器在3秒(3000毫秒)时调用
  • console.log
    使用第四个计时器在4秒(4000毫秒)时调用

  • 我不明白你的问题,请澄清一下,因为你在同一时刻启动了五个不同的计时器,超时时间为1、2、3、4、5秒。我认为它们的意思是“为什么超时之间的长度没有增加?”问题是它们,epexplain您正试图实现的目标如果您只想记录每秒钟递增的数字,那么您可以使用以下命令:
    let count=0;setInterval(()=>{console.log(count);count++;},1000)