javascript - Javascript 检查 >= 0 不是 null 或 undefined 或 ''
问题描述
检查变量是否大于或等于 0而不是null
or undefined
or的最方便/高效的方法是''
什么?例如[0, Infinity)
。假设我的变量是x
,显然x >= 0
不能按原样null >= 0
工作true
。我能想到的最好的是。
x > 0 || x === 0
谁能想到一个更好的?
似乎这个问题应该已经存在,所以如果有人能找到这个问题,我很乐意删除我的问题。
解决方案
也许不是您正在寻找的答案,但为什么不先检查数字呢?
if (typeof x === "number" && x >= 0) {
// Excludes non-number values such as null and undefined
}
请注意Infinity
,如果您只想要有限的数字,这将允许:
if (typeof x === "number" && isFinite(x) && x >= 0) {
// ...
}
号码类型检查阐明了您的意图。
任何让它变得简短和智能的尝试很可能依赖于类型强制,这是有风险的、复杂的(不是每个人都熟悉 JS 怪癖)并且从性能的角度来看是不必要的。
推荐阅读
- javascript - 使用 for 循环动态更改 Div 颜色
- laravel - 如何将 HTML textarea 标签添加到 ckeditor 小部件中?
- c# - ASP.NET MVC 从 Mysql 加载数据
- c# - 用异步方法替换同步方法
- python - 执行 python 时收到错误消息
而不是价值 - php - 检查订阅是否已过期
- elasticsearch - 让 elasticsearch 和 bigquery 协同工作
- javascript - 我无法在 Win7 上运行的 Visual Studio2017 上创建/打开 JavaScript 项目
- redis - Redis SPOP 不是原子的?
- c++ - 使用 unique_ptr 数据成员重载用户定义类型的 operator=