Javascript 将 Infinity、NaN 或 ""重新定义为 0

标签 javascript jquery

<分区>

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

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

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

完整代码是here

在此先感谢您的帮助!

最佳答案

您在本应使用 theResult = 0 的地方使用了 theResult === 0

=== 用于比较。当您想要更改变量的值时,您可以使用赋值运算符=

就像@zzzzBov 说的,最简单的做法就是用

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

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

关于Javascript 将 Infinity、NaN 或 ""重新定义为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22462285/

相关文章:

javascript - 显示来自 Ajax 响应的数据

javascript - 即使过滤器参数未更改,也会调用 Angular 过滤器

javascript - 如何在使用 jquery 在表单文本字段中输入文本时更新跨度

javascript - Uncaught ReferenceError $ 未定义

javascript - 如何判断 slider 是否被移动(或者它的值已经改变)

javascript/jquery - JSON.stringify 在 Windows Phone 7 中不工作

Javascript合并具有相同对象名称的嵌套数组?

JavaScript/jQuery : Is there a better way to acomplish this in Javascript?

javascript - 如何使用 tinymce 的复选框按钮在运行时打开和关闭只读模式?

javascript - jQuery:设置/重置具有特定类的表单字段(改进代码)