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