gpt4 book ai didi

javascript - 带有 setTimeout 的 for 循环将数字打印到控制台

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:59:46 24 4
gpt4 key购买 nike

enter image description here我阅读了闭包并找到了这段代码。

for(i=0;i<5;i++){
setTimeout(function(){
console.log(i);
},2000)
}

这会在 2 秒后输出 5 个数字 5 次。我明白这一点,但在五出现之前,他上面有一个数字。当我再次执行此代码时,它会更改它会将 5 添加到他的旧值中。它是什么?在控制台上编写代码,查看它输出的内容,然后向我解释它是什么?

最佳答案

它是评估语句的“结果”值,对于循环来说是循环体中最后一条语句的结果值,它是 setTimeout 调用的返回值。和 that returns计时器 ID(允许您取消超时)。

您还可以通过更简单的语句看到此行为:

> 0;
< 0
> console.log(1);
1 // the output of the log()
< undefined
> var i=2;
< undefined // a declaration has no result
> var i=3; i;
< 3
> for (;i<3;i++) 4;
< undefined // the body was not evaluated
> for (;i<4;i++) 5;
< 5

注意前导箭头如何表示输入和结果输出。

关于javascript - 带有 setTimeout 的 for 循环将数字打印到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43159067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com