Typescript 有人能帮我描述一下这个打字稿吗? for(设i=0;i
运行时: 0 1. 2. 3. 4. 5. 6. 7. 8. 9 但我无法理解它是如何工作的,就像我们将I乘以100一样。Typescript 有人能帮我描述一下这个打字稿吗? for(设i=0;i,typescript,Typescript,运行时: 0 1. 2. 3. 4. 5. 6. 7. 8. 9 但我无法理解它是如何工作的,就像我们将I乘以100一样。setTimeout()方法在指定的毫秒数后调用函数或计算表达式 所以对于第一个循环,你有一个延迟i*100=0,然后延迟变成100,然后200,依此类推,所以代码每次都记录i,但延迟不同。i从0到9,在每次迭代中,它将超时设置为i乘以100 也就是说,您最终会设置10个超时,分别为0ms(0*100)、100ms(1*100)、200ms(2*100),等等,直到900ms
setTimeout()
方法在指定的毫秒数后调用函数或计算表达式
所以对于第一个循环,你有一个延迟
i*100=0
,然后延迟变成100
,然后200
,依此类推,所以代码每次都记录i
,但延迟不同。i
从0
到9
,在每次迭代中,它将超时设置为i
乘以100
也就是说,您最终会设置10个超时,分别为0ms
(0*100
)、100ms
(1*100
)、200ms
(2*100
),等等,直到900ms
(9*100
)
i | i*100 |延迟
--+---------+------
0 | 0*100 | 0毫秒
1 | 1*100 | 100ms
2 | 2*100 | 200ms
3 | 3*100 | 300ms
4 | 4*100 | 400ms
5 | 5*100 | 500ms
6 | 6*100 | 600ms
7 | 7*100 | 700ms
8 | 8*100 | 800毫秒
9 | 9*100 | 900毫秒
For循环总共调用了setTimeout()函数10次
因此,如果简化,它可以写如下
for (let i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 100 * i);
}
因此,对于0到9范围内的每个数字,setTimeout
函数为每100毫秒的间隔设置console.log()
方法。尝试替换100到1000,您将看到数字以1秒的延迟打印
如果你去掉i乘以100,只保留一个特定的值(比如只有100),看起来所有的数字都是在间隔值之后同时打印出来的。谢谢大家的帮助,我是个新手,所以我没有正确理解它
setTimeout(function() { console.log(0); }, 0); # when i=0
setTimeout(function() { console.log(1); }, 100); # when i=1
setTimeout(function() { console.log(2); }, 200); # when i=2
setTimeout(function() { console.log(3); }, 300); # when i=3
and so on...
settimeout(函数、参数)
for(设i=0;i<10;i++){
setTimeout(函数(){
控制台日志(i);
},100*i);
}
当我们执行它时,i的值在乘以100后不会改变,但只会在输出中提供100毫秒的延迟,并且每增加100毫秒。
最后延迟为900毫秒。这是否回答了您的问题
100*i
是显示消息的*超时`。
settimeout(function, parameter)
for (let i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 100 * i);
}