检查javascript变量是否大于零的最简单方法是什么?

时间:2014-01-31 14:40:56

标签: javascript

我编码了这个:

        isNumberNotZero: function (num) {

            // Return false if num is null, an empty string or zero
            if (num === null || typeof num === "undefined" || (typeof num === "string" && num.length === 0) || num == 0) {
                return false;
            }
            return true;
        },

但是有更简单的方法可以做到这一点。我的代码看起来不太干净。

3 个答案:

答案 0 :(得分:4)

当你只关心它是一个大于零的数字时,你正在做很多检查它不是的事情。

只需:

return typeof a === "number" && a > 0

答案 1 :(得分:1)

这是an answer to着名的Validate numbers in JavaScript - IsNumeric()问题:

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

然后您的测试就像将该函数与> 0

组合一样简单
return isNumber(input) && input > 0;

答案 2 :(得分:0)

如果要缩短代码,可以使用unary plus operator转换为整数。

这不是可读的,只适用于整数(例如,如果你的数字为0.5,这将把它视为零),但它快速而简洁。

function isNumberNotZero(num) {
    return +num !== 0;
}