我在JavaScript中获得NaN

时间:2014-05-20 20:12:40

标签: javascript

我在尝试计算总值时遇到问题,总值是乘法结果的总和 和总的当前价值。我正在处理投入,我不知道我错过了什么。

var monto = parseInt(cantidad.value) * parseInt(precio.value);
            var total = document.getElementById("total");
            var t = 0;
            var num1 = monto;
            var num2 = total.value;

            t = parseInt(num1) + parseInt(num2);

            total.value = t;

1 个答案:

答案 0 :(得分:2)

tldr;这是因为parseInt(..)超过一个或多个输入会导致NaN。当输入不代表有效数字时会发生这种情况,例如parseInt("foo")parseInt(undefined)

这会引入一种沉默的NaN,它会污染"数学运算:NaN + x -> NaNx + NaN -> NaN

虽然isNaN可以用作警卫,但是正确的"方法可能是找出哪个 parseInt导致NaN(以及哪个输入)并修复它。 debugger关键字在这里很有用,当与适当的开发人员工具一起使用时,可以分析情况(即特定值)。