【问题标题】:how do I create an infinite loop in JavaScript [duplicate]如何在 JavaScript 中创建无限循环 [重复]
【发布时间】:2014-09-18 14:10:33
【问题描述】:

我想在 JavaScript 中创建一个无限循环。

有什么方法可以做到这一点:

例如

for (var i=0; i<Infinity; i++) {}

【问题讨论】:

标签: javascript loops infinite-loop


【解决方案1】:

你也可以使用while循环:

while (true) {
    //your code
}

【讨论】:

  • 这不会抛出异常吗?
  • 这将阻止页面中的 Javascript 执行,导致浏览器对话框要求停止或调试脚本。它不会工作
  • @Alberto 除非你不是为浏览器编程
  • @Alberto 在生成器函数中绝对没问题。
  • 在某种情况下,如果希望在浏览器中执行,实现无限循环的更好方法是使用 setTimeout 或 setInterval 函数。这篇文章包含更多关于此的描述性细节。 (nextcsguide.com/javascript/…)
【解决方案2】:

通过省略头部的所有部分,循环也可以变得无限:

for (;;) {}

【讨论】:

  • 这比while(true)好{}:如果你使用ESLint,它不会触发eslint.org/docs/rules/no-constant-condition
  • 出于某种原因,我只是讨厌它在我的代码中的外观。如此神秘。我想知道是否有更语义化的方式来做到这一点?但是,是的,在这种情况下似乎是要走的路!
  • 这似乎是一个更好的选择,因为一些代码优化器(如 Webpack Terser 插件)在使用 while (true) 变体时会发送带有警告的垃圾邮件,如 Condition always falseDropping unreachable code
  • 你可以用分号for(;true;) { if(condition) break; //do work }之间的true打破for(;;) {}循环。
  • 我喜欢它只是因为它是独一无二的 :D
猜你喜欢
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 2014-07-31
相关资源
最近更新 更多