Javascript - 打破无限循环?

时间:2014-04-18 18:31:25

标签: javascript

是否有可能做到这样的事情,并在满足条件后结束看似无限的循环?当我尝试它时,它会崩溃我的浏览器应该是无限循环。还有其他方法可以做到这一点还是不可能?

var nL=true;
while(nL){
    if(/* Condition */){
        nL=true;     
        break;
    }
}

2 个答案:

答案 0 :(得分:4)

如果/* Condition */ 永远为真,那么循环将结束 - 因为break将结束循环,而不管nL设置为什么。

因此问题是/* Condition */永远不会成真。


现在,正如Matt Greer指出的那样,如果目标 无限循环(或循环很长时间),则必须以小批量完成(例如使用{{ 1}})或关闭当前的全局上下文(例如使用Web Workers),以便浏览器不会冻结。

答案 1 :(得分:1)

    var nL=true;
    while(nL){
        if(/* Condition */){
            nL=false; // Set to false to exit loop
            break; // Don't need this, if you set nL to false.
        }
    }