NaN

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;

实例:




然后,非数字字符串转为数字类型时返回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)