如果声明不起作用我比较变量

时间:2014-11-10 14:31:19

标签: javascript variables if-statement

当参数为value+ac_over_value===valueOfB时,for循环中的if语句不会触发,但例如valueOfA = 1,valueOfB = 2且valueOfC = 1,我将if语句的参数设置为value+ac_over_value===2它确实有效。如果与变量进行比较,为什么该语句不起作用?

function getN(decP){
var valueOfA = document.getElementById("a-f").value;
var valueOfB = document.getElementById("b-f").value;
var valueOfC = document.getElementById("c-f").value;
var result = Math.pow(10, (decP*-1));
a_c = valueOfA*valueOfC;
var neg_a_c;
var pos_a_c;
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(value=pos_a_c;value>=neg_a_c;value-=result){
    ac_over_value = a_c/value;
    if(value+ac_over_value === valueOfB){
        divideByCoefficient(value, ac_over_value);
    }
}
};

2 个答案:

答案 0 :(得分:1)

===表示它们必须属于同一类型。检查以确保类型相同。否则只需使用==

答案 1 :(得分:1)

您可能需要将valueOfA,valueOfB和valueOfC转换为与ac_over_value相同的类型。根据需要使用parseFloat或parseInt。

实施例

var valueOfB = parseFloat(document.getElementById("b-f").value);

与FirstLegion一样,===检查类型不仅仅是值。