NaN

作者: 帕西呢么 | 来源:发表于2016-11-28 20:02 被阅读0次

NaN

NaN:not a number 不是个 数字 的 数字类型

var a = 'sdfsd'-100;//NaN
alert( typeof (a) );            // number

转化成数字失败就会变成NaN

NaN的特性

  1. if(NaN) 为假
!NaN == true;
  1. 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

相关文章

网友评论

      本文标题:NaN

      本文链接:https://www.haomeiwen.com/subject/srnopttx.html