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'
...
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn