5

这是一个纯粹出于好奇的问题,因为它让我感到困惑。我在 Ubuntu 12.04 上,我在 Firefox 19.0.2 和 Chromium 25.0.1364.160 上试过这个。查看以下两段 JavaScript 代码(这些是一段较大代码的摘录):

var Div = document.createElement('div');
var limit = 5;

var i = 0;
while (i<limit){
    var img = document.createElement('img');
    img.setAttribute('src', anImage);
    Div.appendChild(img);
    i++;
}
return Div;

var Div = document.createElement('div');
var limit = 5;

for (i=0; i<limit; i++){
    var img = document.createElement('img');
    img.setAttribute('src', anImage);
    Div.appendChild(img);
}
return Div;

现在'while' 循环按预期工作,而'for' 循环冻结浏览器。为什么这样做?区别在哪里?

我在 Interwebs 上寻找了一个类似的案例,但没有一个是完美的答案。这里有类似的,但不完全相同。

在循环结构中将元素附加到 DOM

For循环冻结Javascript?

实际上,第二个给了我首先尝试一个while循环的想法,但它从未被解释过,为什么它会有所作为......

感谢您的任何澄清:)

4

0 回答 0