Javascript - while 循环间歇性地无限运行?

Posted

技术标签:

【中文标题】Javascript - while 循环间歇性地无限运行?【英文标题】:Javascript - while loop runs infinite intermittently? 【发布时间】:2018-10-17 12:25:40 【问题描述】:

如果我在控制台中运行以下函数(长度为 1 到 10 之间的整数),它会使浏览器崩溃。

function getStr(length) 
  var random = Math.round(Math.random() * Math.pow(10, length)).toString();
   while(random.length < length) 
       random = random.padEnd('1');
   
   return random;

我不知道为什么。

【问题讨论】:

你永远不会改变 random.length 的值。如果 random.length 我想你想使用while(random &lt; length)然后在while里面,改变random变量值 你误解了padEnd方法。 摆脱循环,做return random.padEnd(length, "1") 根据这里的建议,我将 random.padEnd('1') 更改为 `random = random.padEnd('1') 也不起作用 【参考方案1】:

您无法更改 random.length 的值、跳出循环或更改 while 条件。你需要一些方法来摆脱它,否则它将永远循环。

function getStr(length) 
    var random = Math.round(Math.random() * Math.pow(10, 
    length)).toString();
    while(random.length < length) 
        console.log(random.length, ‘-’, length);
        length = random.length + 1; //Change the value of length
        // OR you can just break out of the loop
        break; // Break out of the loop
    
    return random;

Here is a resource to learn more about javascript while loops.

【讨论】:

对不起,我把错误的代码放在那里,我会编辑它。我已经放了控制台日志进行调试,这是原始功能:function getStr(length) var random = Math.round(Math.random() * Math.pow(10, length)).toString(); while(random.length &lt; length) random.padEnd('1'); return random;

以上是关于Javascript - while 循环间歇性地无限运行?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript.2

jquery颜色动画间歇性地抛出无效的属性值

JavaScript循环 while/do while/for的使用

JavaScript-Runoob:JavaScript while 循环

javaScript基本循环

JavaScript之三大循环结构(for循环,while循环,do-while循环)