NaN
NaN:not a number 不是个 数字 的 数字类型
var a = 'sdfsd'-100;//NaN
alert( typeof (a) ); // number
转化成数字失败就会变成NaN
NaN的特性
- if(NaN) 为假
!NaN == true;
- NaN自己和自己都不相等
NaN == NaN; //fasle
isNaN函数
判断是否为NaN或者说不能转化成数字
isNaN('123');//false
isNaN(123);//false
isNaN('123px');//true;
判断某些值是不是数字
不喜欢数字、讨厌数字
它的工作原理是,使用Number转化;如果出现NaN则返回true;
实例:
<input type="text" />
<input type="button" value="判断输入值是不是数字" />
<script>
var aInp = document.getElementsByTagName('input');
var str = '';
aInp[1].onclick = function (){
str = aInp[0].value;
// HTML 中拿到的内容,类型都是字符串
// alert( typeof str );
if( isNaN(str) ){
alert( str + '不是数字' );
}else{
alert( str + '是数字' );
}
};
</script>
然后,非数字字符串转为数字类型时返回NaN,按理,字符串不是数字类型,我们运用isNaN()时应该返回false,但是却返回了true;我们可以运用Number.isNaN()来解决这一问题!
isNaN('0/0') //arithmethic ilegal (NaN)算数 ---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