js判斷類型爲數字的方法實現總彙——原生js判斷isNumber()

方法一【推薦】:javascript

最容易想到的是用typeof來判斷是不是number類型 ,可是若是爲NaN會被認爲也是number類型,所以咱們須要使用isNaN來排除NaN的狀況。 java

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

 

方法二:prototype

isNaN(obj)   等價於isFinite()。Infinity在js表示數字的無窮大,判斷是否可用作數字的最佳方法則是isFinite(),由於該方法會篩除掉NaN和Infinity兩個關鍵字。blog

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

 

方法三:ip

不使用typeof,能夠用Object.prototype.toString來實現,只是代碼量稍微比較大而已。字符串

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

  或者it

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

  

 方法四:io

聽說這個方法是世界上最短的數字判斷代碼  function

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

下面是該方法的延伸。class

一、判斷字符串 :

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

二、判斷布爾類型

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

相關文章
相關標籤/搜索