方法:1、利用typeof關(guān)鍵字和isNaN()函數(shù)判斷;2、利用typeof關(guān)鍵字和isFinite()函數(shù)判斷;3、利用“Object.prototype.toString.call”判斷;4、利用正則表達(dá)式來判斷。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
js判斷數(shù)字類型匯總
最近在寫代碼的時(shí)候,有些邏輯需要判斷數(shù)字類型,等用到的時(shí)候才發(fā)現(xiàn)自己了解的方法不太嚴(yán)密,然后就決心查資料匯總了解下有哪些方法比較嚴(yán)密
第一種:typeof + isNaN
使用typeof可以判斷是否是一個(gè)數(shù)字類型,但是NaN也是數(shù)字類型,為了篩除這個(gè)可能,進(jìn)一步通過isNaN來篩除。這種方法會(huì)遺漏Infinity
function isNumber(num) { return typeof num === 'number' && !isNaN(num) }
第二種:typeof + isFinite
使用typeof可以判斷是否是一個(gè)數(shù)字類型,但是NaN和Infinity也是數(shù)字類型,為了篩除這個(gè)可能,進(jìn)一步通過isFinite來篩除NaN和Infinity
function isNumber(num) { return typeof num === 'number' && isFinite(num) }
【推薦學(xué)習(xí):javascript高級(jí)教程】
第三種:Object.prototype.toString.call
function isNumber(num) { return Object.prototype.toString.call(num) === '[object Number]' && !isNaN(num) }
第四種:正則表達(dá)式(最推薦的一種)
function isNumber(num) { return /^[0-9]+.?[0-9]*$/.test(num) }