NaN
NaN:not a number 不是個 數(shù)字 的 數(shù)字類型
var a = 'sdfsd'-100;//NaN
alert( typeof (a) ); // number
轉化成數(shù)字失敗就會變成NaN
NaN的特性
- if(NaN) 為假
!NaN == true;
- NaN自己和自己都不相等
NaN == NaN; //fasle
isNaN函數(shù)
判斷是否為NaN或者說不能轉化成數(shù)字
isNaN('123');//false
isNaN(123);//false
isNaN('123px');//true;
判斷某些值是不是數(shù)字
不喜歡數(shù)字、討厭數(shù)字
它的工作原理是蝗柔,使用Number轉化惭笑;如果出現(xiàn)NaN則返回true;
實例:
<input type="text" />
<input type="button" value="判斷輸入值是不是數(shù)字" />
<script>
var aInp = document.getElementsByTagName('input');
var str = '';
aInp[1].onclick = function (){
str = aInp[0].value;
// HTML 中拿到的內(nèi)容,類型都是字符串
// alert( typeof str );
if( isNaN(str) ){
alert( str + '不是數(shù)字' );
}else{
alert( str + '是數(shù)字' );
}
};
</script>
然后,非數(shù)字字符串轉為數(shù)字類型時返回NaN侦副,按理豆村,字符串不是數(shù)字類型,我們運用isNaN()時應該返回false脸秽,但是卻返回了true儒老;我們可以運用Number.isNaN()來解決這一問題!
isNaN('0/0') //arithmethic ilegal (NaN)算數(shù) ---trueNumber.
isNaN('123') //string not number ---false
isNaN('123') //convert to number 轉化---falseNumber.
isNaN('Hello') //string not number ---false
isNaN('Hello') //convert fail(NaN) 轉化失敗---true
Number.isNaN('') /isNaN(null) //string not number ---false
Number.isNaN(true) //bool not number ---false
isNaN('') /isNaN(null) //convert to 0 ---false
isNaN(true) //convert to 1 ---falseNumber.
isNaN(undefined)//---false//undefined not number ---flase
isNaN(undefined) //convert fail ---true
isNaN(parseInt(undefined))//----true
isNaN(parseInt(null))//---true
isNaN(parseInt(''))//---true
isNaN(parseInt(true))//----trueNumber
isNaN('NaN') //---false
isNaN('NaN') //---trueNumber.
isNaN(NaN) //---true
isNaN(NaN) //---true