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可以用来判断某些值是不是数字,这种用法会很多。

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

  • 相关阅读:
    业务决定功能,功能决定技术
    类的设计问题
    鲁棒图的三元素:抽象对象,实体对象和控制对象
    swift 命名空间实现的设计思考:extension YKKit where Base == String
    iOS keychain注解
    学科基本结构理论-布鲁纳学习理论
    软件框架的理解
    数据库管理系统-可扩展的功能组件
    SQLite权威指南
    应用程序员眼中的数据库管理系统:API+数据库语言
  • 原文地址:https://www.cnblogs.com/web001/p/7944441.html
Copyright © 2011-2022 走看看