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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM