zoukankan      html  css  js  c++  java
  • 关于NaN和isNaN

    js中的数据类型有几个特殊的,其中NaN就是一个,今天来说一下NaN的特点以及和isNaN的区别。

    JS中的数据类型:数字(NaN)、字符串、布尔、函数、对象(obj、[]、{}、null)、未定义。

    一、那么NaN在以下几种情况中会比较特殊:

     1 <script>
     2 var a = Number('abc');
     3 // alert( a );            // NaN
     4 // NaN:not a number 不是个 数字 的 数字类型。结果说明:NaN属于数据类型中的数据
     5 
     6 
     7 // alert( typeof (a) );            // number
     8 // 一旦写程序中出现:NaN  肯定进行了非法的运算操作
     9 // alert( '200px' -  100 );
    10 
    11 // NaN 是 false
    12 if( a ){
    13     // alert( '真' );
    14 }else{
    15     // alert( '假' );
    16 }
    17 //结果说明:NaN在布尔值中是false
    18 
    19 
    20 var abc = [];
    21 // alert( abc === abc );                true
    22 
    23 alert( a === a );                // false
    24 // 结果说明:NaN 与自己都不相等!!
    25 </script>

    从上面的分析中得出几个NaN的特点:

    1、NaN属于数据类型中的数据;

    2、NaN在布尔值中是false;

    3、NaN 与自己不相等。

    二、接下来我们来看看isNaN:

    isNaN:Is not a number 是不是不是一个数字(不是数字)

    isNaN(); 是一个方法,它的特点是:

    1、可以判断某些值是不是数字
    2、不喜欢数字、讨厌数字

    1 <script>
    2 
    3 alert( isNaN('250') );//返回的结果就是false
    4 
    5 //isNaN在解析的过程中能解析出来的自行解析若是不能解析的字符串或者其他类型都会“交给” Number()来处理解析,所以就会出现下面的解析过程
    6 // Number()  '250' => 250 => false
    7 </script>

    所以在项目中isNaN可以用来判断某些值是不是数字,这种用法会很多。

    好了,今天就写到这里,明天继续!

  • 相关阅读:
    一行代码搞定Dubbo接口调用
    测试周期内测试进度报告规范
    jq 一个强悍的json格式化查看工具
    浅析Docker容器的应用场景
    HDU 4432 Sum of divisors (水题,进制转换)
    HDU 4431 Mahjong (DFS,暴力枚举,剪枝)
    CodeForces 589B Layer Cake (暴力)
    CodeForces 589J Cleaner Robot (DFS,或BFS)
    CodeForces 589I Lottery (暴力,水题)
    CodeForces 589D Boulevard (数学,相遇)
  • 原文地址:https://www.cnblogs.com/web001/p/7944441.html
Copyright © 2011-2022 走看看