美文网首页
2018-06-26 (NaN)

2018-06-26 (NaN)

作者: Mo_ham_med | 来源:发表于2018-06-26 17:02 被阅读0次

    NaN

    NaN (not a Number) 不是 一个 数字 。

    NaN (not a Number) 不是 一个 数字 。

    是一个特殊的值,这个数值表示  本来 要 返回数值 的 操作数 未返回数值的情况 (这样就不会抛出错误了)。
    
    比如在其他语言中
    
    任何数值除以 0 都会 导致 错误 而 终止 程序执行。 但是 在 ECMAScript中,会返回出特殊的值,
    
    因此 不会 影响 程序 的执行。
    
    
        var box = 0/0;   //  NaN
    
        var box = 12/0;  //  Infinity
    
        var box = 12/0*0  // NaN;
    
    
    可以通过 Number.NaN  得到 NaN 的值, 任何与 NaN 进行 运算 的 结果 均会为 NaN   ,
    
    NaN 与 自身不相等(NaN不与任何值 相等)。
    
    
         alert(Number.NaN) // NaN
    
         alert(NaN + 1)    // NaN
    
         alert(NaN == NaN) // false
    
        
    
    isNaN () 函数   ,   用来 判断 这个是不是 NaN, isNaN() 函数 在 接收到 一个值后,会尝试
    
    将这个值 转换成 数值。
    
    
    alert(isNaN(NaN))  // true 
    
    alert(isNaN(25))   // false  25 是一个数值
    
    alert(isNaN('25')) // false  '25' 是一个字符串数值,可以转换为数值
    
    alert(isNaN('Lee'))// true   'Lee' 是个 字符串 ,  不能 转化 为  数值
    
    alert(isNaN(true)) // false  true 可以 转化成 1
    
    
    
    有 三个函数 可以 把 非数值 转换 成 数值 : Number() 、 parseInt() 和 
    
    parseFloat()。  Number()  是 转换型 函数, 可以用于 任何 数据类型,而 另外 两个则,
    
    
    专门 用于 把 字符串 转换 成  数值。
    
    alert(Number(true))   // 返回 值  1      Boolean 类型的 true 和 false  分别 转换成 1 和 0 
    
    alert(Number(25));    // 25 ,  数值类型直接返回。
    
    alert(Number(null));  // 0  ,   空对象 返回 0 ;
    
    alert(Number(undefined)); // NaN ,   undefined  返回 NaN  如下
    
    
        var vmp 
        
        alert(Number(vmp));  //  NaN
    
        
        //   声明变量  vmp  没有 赋值  , 没有 赋值 就是 默认值,变量未定义之前,默认值是 undefined 
        //   undefined 返回  NaN, 所以, 用 Number() 函数 转化 为 数值,所以是,NaN; 
    
    
    
    
    如果是 字符串 增寻 以下 规则:
    
    1. 只 包含 数值的 字符串, 会直接 转换成  十进制 数值, 如果 包含 前面 有 0,即会 自动 去掉。
    
        alert(Number('456'));   //   456
    
        alert(Number('070'));   //   70
        
    
    2. 只包含 浮点数值 的 字符串,会直接 转换 成 浮点数值, 如果 包含前导 和 后导 0 ,即会自动去掉。
    
    
        alert(Number('08.50')); // 8.5 
    
    
    
    3. 如果 字符串 为 空, 那么 直接 转换 成 0 ;
    
        alert(Number('')) // NaN
    
    
    4. 如果 不是 以上 三种 字符串类型, 则 会 返回 NaN。
    
    
        alert(Number('lee123')) // NaN
    
    
    
    由于 Number() 函数 在 转换 字符串 时 比较 复杂 切 不够合理, 因此 在处理整数的时候,
    
    更常用的是,parseInt()。
    
    
        alert(parseInt('456lee'));     // 456 ,  返回 整数 部分。
    
        alert(parseInt('lee456lee'));  // NaN , 如果 第一个 不是数值, 就会 返回 NaN。
    
        alert(parseInt('12Lee56Lee')); // 12 ,  从第一个数值 开始取,到 最后 一个连续数值结束。
    
        alert(parseInt(56.12));        // 56 ,   小数点不是数值, 会被 去掉。
    
        alert(parseInt(''));           // NaN,    空 返回 NaN
    
        parseInt()   除了 可以 识别 十进制数,开可以 识别 八进制 和 十六进制。
    
    
        alert(parseInt('0xA'));         //10,十六进制
    
        alert(parseInt('070'));         //56,八进制
    
        alert(parseInt('0xALee'));  //100,十六进制,Lee被自动过滤  
    
        
        ECMAScript 为  parseInt()  提供了  第二参数, 用于解决 各种 进制转换。
    
        alert(parseInt('0xAF'));                     //175,十六进制
    
        alert(parseInt('AF',16));                 //157,第二参数指定十六进制,可以去掉0x前导
    
        alert(parseInt('AF'));                      //NaN,这里看作字符串,理所当然NaN
    
        alert(parseInt('101010101',2));  //314,二进制转换
    
        alert(parseInt('70',8));                  //56,八进制转换
    
    
    parseFloat()  是用于   浮点数值的转换, 和 parseInt()  一样, 从 第一位解析到 浮点数值位置。
    
    
        alert(parseFloat('123Lee'));     // 123  , 去掉不能 识别的部分。
    
        alert(parseFloat('0xA'));        // 0   ,   不认识 十六进制 
    
        alert(parseFloat(123.4.5))   // 123.4    只认识  一个小数点
    
        alert(parseFloat(0123.400))  //  123.4    去掉 前后导
    
        alert(parseFLoat('1.234e7'));    //  12340000 ,  把科学计数法 转换成 普通 数值。
    
        
    
    
    
    
    
    

    相关文章

      网友评论

          本文标题:2018-06-26 (NaN)

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