Javascript将Infinity,NaN或“”重新定义为0

我有一个javascript计算器,它接受用户输入,做一些数学运算并将结果写入输入字段“#theResult”

由于“#theResult”在keyup上更新,有时“#theResult”将返回Infinity,NaN或“”,直到所有字段都填写完毕。 在填写所有字段之前,我希望“#theResult”返回0。 这是代码:

if (theResult === Infinity || theResult === "" || theResult === NaN) { theResult === 0; } $("#theResult").val(theResult); 

完整的代码在这里

在此先感谢您的帮助!

你已经使用了theResult === 0 ,你应该使用theResult = 0

===用于比较。 如果要更改变量的值,可以使用赋值运算符=

就像@zzzzBov所说的那样,最简单的事情就是替换整个事情

  theResult = isFinite(theResult) && theResult || 0; // updated 

然而,这掩盖了NaN的微妙之处; 如果用户完成并且结果确实是NaN ,则表明0不是真的正确。