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 < 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 < length) random.padEnd('1'); return random;
以上是关于Javascript - while 循环间歇性地无限运行?的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript循环 while/do while/for的使用