js判断类型为数字的方式实现总汇——原生js判断isNumber()

访客4年前关于黑客接单597

这篇文章主要整理关于js判断变量是否为数字的实现方式,我们把方式命名为isNumber,也就是说:对于整数,浮点数返回true,对于NaN或可转成NaN的值返回false。


方式一【推荐】:

最容易想到的是用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;
}


思源资源网:分类流动

1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入

相关文章

51完全免费查开放房,什么软件能查看开过房

【文章百度收录网说】强烈推荐你应用珍珠贝找房,里边就可以见到真正房源,大部分全是实景的,能够依据自身的个人爱好挑选。 用身份证件如何查询开过房?51完全免费查开放房。 理论上是行得通的,事实上是难...

茁尔零食营业额大概多少?利润怎么样?

茁尔零食营业额大概多少?利润怎么样?

各人在选择加盟项目标时候,首先城市看一下茁尔零食项目标营业额或许是怎么样的,固然说现如今茁尔零食是品牌在市场上的成长很是的不错,许多加盟商都想要通过加盟茁尔零食品牌乐成地实现本身的人生抱负。可是各人都...

如何另外接受丈夫手机微信

如何另外接受丈夫手机微信(用自身的手机如何查丈夫手机微信),现如今可以说,大家相互交换的方式愈来愈高。大家差点可以随时亲身经历手机微信、QQ和其他运用...

如何找回我老公历史的通话记录

过几天倒计时过春节啦,不管是孩子还是大人,对春节这个传统节日都是期待的。孩子们在春节家里都会准备很多好吃的,但是吃多了容易导致孩子积食。那么孩子积食该怎么办呢。小编就来为大家说一说。 春节应该怎么样...

卡农是什么神曲(卡农类型的曲子)

卡农是什么神曲(卡农类型的曲子)

翻山越岭〡卡农是什么 今天,我和妈妈开始一段共同的旅行——她的文和我的图,偶尔,我的文和她的图,在“卡农KANON”微信公众号上展现。我们的合作会像下面这曲卡农,和谐而美妙。 卡农是——一起散步,...

100元过夜联系电话号码(附近100元过夜联系电话)

 100元过夜联系电话号码(附近100元过夜联系电话)<勇敢者游戏3>锁定上映日期 PK<星球大战9>...