循环导致Firefox崩溃

时间:2014-04-12 14:56:00

标签: javascript jquery loops firefox crash

所以看起来这个javascript循环有时会导致我的Firefox过载并崩溃。我只是不明白为什么。

        //prep genresArray
        var genPrint = ""; //variable initialized to avoid "undefined" in print loop
        var GAL = movieListLocal[i].genresArray;
        for(var i=0; i<2; i++){
            genPrint = genPrint+GAL[i].name+", ";
        }

genresArray包含许多流派对象,每个流派都有一个id和一个名字(如冒险,恐怖等)。我只是想变成一个连续的字符串。

1 个答案:

答案 0 :(得分:2)

看起来这个循环嵌套在另一个也使用i的循环中。对于内部循环,您应该使用其他变量名称,例如j

    var genPrint = ""; 

    // outer loop counter----v
    var GAL = movieListLocal[i].genresArray;

    // -----v--inner loop counter
    for(var j=0; j<2; i++){
        genPrint = genPrint+GAL[j].name+", ";
    }

JS在使用var时没有块范围,因此内部i声明会覆盖外部声明。

它将与let声明一起使用,该声明来自ECMAScript 6,目前可在Firefox中使用。

for (let i = 0; i < 3; ++i) {
    console.log("foo", i)
    for (let i = 0; i < 3; ++i)
         console.log("bar", i)
}