为什么继续; 语句冻结浏览器?

sup*_*r11 0 javascript iteration loops

我正在制作一个小脚本,它将迭代数字并跳过数字5.我想用continue;语句/标签实现这一点.

这是我的代码:

<p id="test"></p>

<script>

var i, text;

text = "";
i = 0;

for (;i<8;) {
    if (i === 5) {continue;} 
    text += "The number is " + i + "<br>";
    i++;
}

document.getElementById('test').innerHTML = text;

</script>
Run Code Online (Sandbox Code Playgroud)

我没有看到任何拼写错误,但现在编码超过12个小时,也许我正在监督一些显而易见的事情.如果是的话,我道歉.

当我想使用break;语句停在第5位时,这有效.

<p id="test"></p>

<script>

var i, text;

i = 0;
text = "";

for (;i<8;) {
    if (i === 5) {break;}
    text += "The number is " + i "<br>";
    i++;
}

document.getElementById('test').innerHTML = text;

</script>
Run Code Online (Sandbox Code Playgroud)

Tus*_*har 6

if (i === 5) {continue;}
Run Code Online (Sandbox Code Playgroud)

永远不会允许控制继续前进并增加i.因此,当它i变成五时,它总会回归.

解:

if (i === 5) {
    i++; // Increament `i` first
    continue;
}
Run Code Online (Sandbox Code Playgroud)

或者,使用for第三个参数.

for (; i<8; i++) {
            ^^^    // Increment `i` for each iteration
Run Code Online (Sandbox Code Playgroud)

使用if条件可以做一件简单的事情.

for (; i < 8; i++) {

    // If i is not 5, then only append to the string.
    if (i !== 5) {
        text += "The number is " + i + "<br>";
    }
}
Run Code Online (Sandbox Code Playgroud)