我正在查看 w3schools JavaScript 教程,发现一些导致它崩溃的东西。我试图用 for 循环的第二个语句中的相同内容替换 break 语句。这并不是真正的问题,我只是觉得有些东西我不明白。
这是他们的代码:
<html>
<body>
<h2>JavaScript Loops</h2>
<p>A loop with a <b>break</b> statement.</p>
<p id="demo"></p>
<script>
let text = "";
for (let i = 0; i < 10; i++) {
if (i === 3) { break; }
text += "The number is " + i + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
而且效果非常好。然后我把它改成这样:
<html>
<body>
<h2>JavaScript Loops</h2>
<p>A loop with a <b>break</b> statement.</p>
<p id="demo"></p>
<script>
let text = "";
for (let i = 0; i < 10 || i !== 3; i++) {
text += "The number is " + i + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
然后,如果我运行它,网页就会崩溃。 如果我将 or(
||
) 更改为 and(&&
),那么它就可以工作。
这是为什么?
i < 10 || i !== 3
将始终为 true
,因此循环将永远继续并挂起浏览器。