首页 > 解决方案 > Javascript 检查 >= 0 不是 null 或 undefined 或 ''

问题描述

检查变量是否大于或等于 0不是nullor undefinedor的最方便/高效的方法是''什么?例如[0, Infinity)。假设我的变量是x,显然x >= 0不能按原样null >= 0工作true。我能想到的最好的是。

x > 0 || x === 0

谁能想到一个更好的?

似乎这个问题应该已经存在,所以如果有人能找到这个问题,我很乐意删除我的问题。

标签: javascript

解决方案


也许不是您正在寻找的答案,但为什么不先检查数字呢?

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 怪癖)并且从性能的角度来看是不必要的。


推荐阅读