NaN是个啥

作者: 辉夜乀 | 来源:发表于2017-04-05 00:43 被阅读84次

    含义

    NaN是JavaScript的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。

    5 - 'x' // NaN
    

    上面代码运行时,会自动将字符串x转为数值,但是由于x不是数值,所以最后得到结果为·NaN·,表示它是“非数字”(NaN)。

    另外,一些数学函数的运算结果会出现NaN

    Math.acos(2) // NaN
    Math.log(-1) // NaN
    Math.sqrt(-1) // NaN
    0/0           //NaN
    

    这些计算在数学上本来就是错误的,所以计算结果返回NaN

    注意: NaN 的数据类型仍然是number

    typeof NaN
    //"number"
    

    神奇之处

    NaN === NaN  // false
    
    //NaN不等于任何值,包括它本身
    
    Boolean(NaN) // false
    
    //条件判断布尔运算时,NaN 被当做false
    
    NaN + 1 // NaN
    NaN - 1 // NaN
    NaN * 1 // NaN
    NaN / 1 // NaN
    
    //NaN与任何数(包括它自己)的运算,得到的都是NaN。
    

    判断NaN 的方法

    1. isNaN() ,判断一个数是否为NaN,返回 truefalse,但是只对数值有效,不是数值的参数会先转化成数值,当转化不了的时候就转成了NaN,所有这个方法判断不一定准确。
    2. 判断NaN更可靠的方法是,利用NaN是JavaScript之中唯一不等于自身的值这个特点,进行判断。
    function myIsNaN(value) {
      return value !== value;
    }
    

    相关文章

      网友评论

        本文标题:NaN是个啥

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