JavaScript 中的无限循环
有各种可用的循环服务于特定目的并在需求匹配时使用。我们可以使用它们中的任何一个来让它运行无限次。
在今天的文章中,我们将了解不同类型的循环以及什么是 JavaScript 中的无限循环。
在 JavaScript 中使用 while
循环的无限循环
只要测试条件为 true
,while
语句就会生成一个执行特定语句的循环。条件总是在它里面的语句被执行之前被评估。
语法:
while (condition) statement
为了理解 while
循环,让我们看看下面的例子。
例子:
let i = 0
while (i < 3) {
console.log(i);
i += 1;
}
在上面的例子中,i < 3
是条件
。这是一个表达式,在循环的每一步之前都会被评估。
如果此条件的计算结果为 true
,则执行其中写入的语句。因此,直到 i
的值小于 3,它才会打印 i
的当前值。
一旦条件评估为 false
,while
循环执行停止并继续执行 while
循环之后的语句。
console.log(i); i += 1
是 statement
,它是一个可选语句,只要条件为 true
时执行。在我们的示例中,console.log
是在 i
的值小于 3 之前执行的语句。
当上述代码在任何浏览器中运行时,你将获得以下输出。
输出:
0
1
2
要使此循环无限运行,请将条件指定为 true
,它将无限运行。这里唯一的缺点是 JavaScript 是单线程的。
所以它会阻塞当前线程,你的窗口会冻结。
在 JavaScript 中使用 for
循环的无限循环
for
语句是 JavaScript 提供的内置循环。它创建了一个循环,该循环采用三个可选表达式,括在括号中。
这些表达式用分号隔开,后面是需要在循环中执行的块语句。
语法:
for ([initialization];[condition];[final - expression]) statement
为了理解 for
循环,让我们看看下面的例子。
例子:
for (let i = 0; i < 3; i++) {
console.log(i)
}
// for(;;) {
// console.log("hello world!")
// }
在上面的例子中,let i = 0
是 for
循环的初始化。它是在循环开始之前计算一次的表达式或变量声明。
该表达式可以使用可选的关键字 var
或 let
声明新变量。用 var
关键字声明的变量不是循环的局部变量;它们与 for
循环在同一范围内。
我们的变量 i
是用声明的本地变量 let
声明的。
i < 3
是 for
循环的条件。它是在循环的每次迭代之前评估的表达式。
如果该表达式为 true
,则执行该语句。在我们的示例中,直到 i
的值小于 3,它才会打印 i
的当前值。
此调节测试是可选参数。如果省略,则条件始终计算为 true
。
如果表达式的计算结果为 false
,则执行跳转到 for
构造之后的第一个表达式。
i++
是 final-expression
。它是在每次循环迭代结束时计算的表达式。
这发生在对条件的下一次评估之前。它每次都更新 i
的值。
console.log(i)
是语句
。它是在条件评估为 true
时执行的语句。
在 for() 循环 的文档中查找更多信息。
当上述代码在任何浏览器中运行时,你将获得以下输出。
输出:
0
1
2
要使这个循环无限运行,不要指定任何条件(如上面注释代码所示),它将无限运行。这里唯一的缺点是 JavaScript 是单线程的。
所以它会阻塞当前线程,你的窗口会冻结。
在 JavaScript 中使用 setInterval
的无限循环
JavaScript 默认提供了 setInterval()
方法。这个方法暴露在 Windows
和 Worker
接口中,重复调用一个函数或执行一段代码,每次调用之间有固定的时间延迟。
setInterval()
方法返回唯一标识间隔的间隔 ID,以便你以后可以通过调用 clearInterval()
将其删除。
语法:
const intervalID = setInterval(code, [delay]);
为了理解 setInterval
,让我们看看下面的例子。
例子:
setInterval(() => {console.log('Hello world')}, 1);
console.log('Hello world')
是上面例子中的代码。一种可选语法,允许你包含字符串而不是函数,每延迟毫秒编译和执行一次。
1
是 delay
,可选参数,指定时间;以毫秒为单位,计时器应该在指定函数或代码的执行之间延迟。如果未指定,则默认值为 0。
此函数返回 interval ID
,一个非零数值,用于标识由 setInterval()
调用创建的计时器。要取消间隔,我们可以将此值传递给 clearInterval()
。
在 setInterval() 的文档中查找更多信息。
这个函数的优点是它不会阻塞 JavaScript 的执行,它会无限次返回,直到间隔被清除。要清除间隔,请调用 clearInterval()
函数。
输出:
'Hello world'
'Hello world'
'Hello world'
'Hello world'
'Hello world'
'Hello world'
'Hello world'
...
相关文章
Do you understand JavaScript closures?
发布时间:2025/02/21 浏览次数:108 分类:JavaScript
-
The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.
Do you know about the hidden traps in variables in JavaScript?
发布时间:2025/02/21 浏览次数:178 分类:JavaScript
-
Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av
How much do you know about the Prototype Chain?
发布时间:2025/02/21 浏览次数:150 分类:JavaScript
-
The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start
用 jQuery 检查复选框是否被选中
发布时间:2024/03/24 浏览次数:102 分类:JavaScript
-
在本教程中学习 jQuery 检查复选框是否被选中的所有很酷的方法。我们展示了使用直接 DOM 操作、提取 JavaScript 属性的 jQuery 方法以及使用 jQuery 选择器的不同方法。你还将找到许多有用的
jQuery 中的 Window.onload 与 $(document).ready
发布时间:2024/03/24 浏览次数:180 分类:JavaScript
-
本教程演示了如何在 jQuery 中使用 Window.onload 和 $(document).ready 事件。