Endless loop caused by no warning ()

For reasons completely beyond my understanding, this function works very well:

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);
    }
}

But moving alert(ctr)outside whilecauses an endless loop.

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);
}

Can someone help clarify?

+3
source share
5 answers

, . , , , , error, JS , . , , alert() - . , , .

+3

alert , error , loop false.

, alert while, , long - script .

+3

Javascript . , , ( ​​ , ), . Javascript .

+1

, , , - .

0

, ( ), javascript ..error() .

Is it possible to write a for loop given the length abc?

0
source

Source: https://habr.com/ru/post/1754349/


All Articles