【问题标题】:JavaScript for loop crashes browserJavaScript for 循环崩溃浏览器
【发布时间】:2014-11-07 18:24:40
【问题描述】:

这个循环在运行时会导致浏览器崩溃,但我不明白为什么 - 函数 getN 是用于分解二次方程的三个函数之一。 我确定这是导致问题的循环,我已经对此进行了测试,并且浏览器仅在存在 for 循环时才会崩溃。任何帮助将不胜感激。

function getN(decP){
var a = document.getElementById("a-f").value;
var b = document.getElementById("b-f").value;
var c = document.getElementById("c-f").value;
var n_1 =0;
var n_2 =0;
var result = Math.pow(10, (decP*-1));
var a_c = a*c;
var neg_a_c = 0;
var pos_a_c = 0;
if(a_c<0){
    neg_a_c = a_c;
    pos_a_c = a_c*-1
}
else{
    pos_a_c = a_c;
    neg_a_c = a_c*-1;
}
for(x=neg_a_c;x<=pos_a_c;x+result){
    if(x!==0){
        if(x+(a_c/x)===b){
            var num1 = x;
            var num2 = a_c/x;
        }
    }
}
divideByCoefficient(num1, num2)
};

【问题讨论】:

  • 无限循环倾向于这样做
  • x+result 仅评估值,您不会将其存储在任何地方。猜你想要:x+=result

标签: javascript html loops for-loop


【解决方案1】:
for(x=neg_a_c;x<=pos_a_c;x+result){
                          ^
                           `-----here

您可能指的是x += result(或x = x + result),而不仅仅是x+result

x+result 从不修改x。所以x 总是等于neg_a_c 并且循环永远运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多