zoukankan      html  css  js  c++  java
  • js判断类型为数字的方法实现总汇——原生js判断isNumber()

    方法一【推荐】:

    最容易想到的是用typeof来判断是否是number类型 ,但是如果为NaN会被认为也是number类型,因此我们需要使用isNaN来排除NaN的情况。 

    function isNumber(obj) {  
        return typeof obj === 'number' && !isNaN(obj)  
    }
    

    方法二:

    isNaN(obj)   等价于isFinite()。Infinity在js表示数字的无穷大,判断是否可用做数字的最佳方法则是isFinite(),因为该方法会筛除掉NaN和Infinity两个关键字。

    function isNumber(obj) {  
        return typeof obj === 'number' && isFinite(obj)      
    }
    

    方法三:

    不使用typeof,可以用Object.prototype.toString来实现,只是代码量稍微比较大而已。

    function isNumber(obj) {  
        return Object.prototype.toString.call(obj) === '[object Number]' && !isNaN(obj)  
    }
    

      或者

    function isNumber(obj) { 
        return Object.prototype.toString.call(obj) === '[object Number]' &&  isFinite(obj)      
    }
    

      

     方法四:

    据说这个方法是世界上最短的数字判断代码  

    function isNumber(obj) {  
        return obj === +obj  
    }

    下面是该方法的延伸。

    1、判断字符串 :

    function isString(obj) {  
        return obj === obj+''  
    }
    

    2、判断布尔类型

    function isBoolean(obj) {  
        return obj === !!obj  
    }
    

     

     方法五【推荐】

      使用正则来实现,这也是我们最常用的方式

    function isNumber(obj) {
      var reg = /^[0-9]+.?[0-9]*$/;
      if (reg.test(obj)) {
        return true;
      }
      return false;
    } 

    引用:http://www.fly63.com/article/detial/812

  • 相关阅读:
    预编译命令 #if DEBUG
    conda常用命令
    tensorflow 安装指南
    LocNET和池化理解
    同时安装cuda8和cuda9
    np.transpose
    python中List的slice用法
    书单
    训练工程
    linux 查看进程
  • 原文地址:https://www.cnblogs.com/alexandra/p/10265726.html
Copyright © 2011-2022 走看看