gpt4 book ai didi

javascript - 没有 alert() 触发无限循环

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

由于完全超出我理解的原因,这个函数运行得很好:

function foo() {
var loop = true;
var abc = ["a","b","c"];
var ctr = 0;
while(loop) {
$("<img />").error(function () {
loop = false;
}).attr('src','images/letters/'+abc[1]+(ctr++)+".jpg");
alert(ctr);
}
}

但是将 alert(ctr) 移到 while 之外会触发无限循环。

function foo2() {
var loop = true;
var abc = ["a","b","c"];
var ctr = 0;
while(loop) {
$("<img />").error(function () {
loop = false;
}).attr('src','images/letters/'+abc[1]+(ctr++)+".jpg");
}
alert(ctr);
}

谁能帮忙澄清一下?

最佳答案

我会非常小心地做你正在做的事情。你看,你实际上是在脱离一个无限循环,依靠 JS 抛出的 error 事件来中断那个循环。我想您会看到上述行为,因为调用 alert() 会发送消息,并为事件提供触发机会。在后一个示例中,您只是在旋转 CPU,不给任何其他事情发生的机会。

关于javascript - 没有 alert() 触发无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234319/

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