【问题标题】:What's the easiest way to check if a javascript variable is a number and greater than zero? [duplicate]检查javascript变量是否为数字且大于零的最简单方法是什么? [复制]
【发布时间】:2014-02-24 07:16:48
【问题描述】:

我写了这个:

        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;
        },

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

【问题讨论】:

    标签: javascript


    【解决方案1】:

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

    只是:

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

    【讨论】:

      【解决方案2】:

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

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

      那么您的测试就像将该函数与> 0 结合起来一样简单:

      return isNumber(input) && input > 0;
      

      【讨论】:

        【解决方案3】:

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

        这不那么可读,并且仅适用于整数(例如,如果您的数字是 0.5,这会将其视为零),但它既快速又简洁。

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

        【讨论】:

          猜你喜欢
          • 2017-08-23
          • 2012-05-23
          • 1970-01-01
          • 2016-03-11
          • 1970-01-01
          • 2012-08-28
          • 2012-08-20
          • 2019-11-26
          • 1970-01-01
          相关资源
          最近更新 更多