js-之NaN和isNaN

NaN (not is number) 不是一个数字的意思,在js中整型和浮点数都是Number类型。

除此之外,Number还有一个特殊的值,NaN。

一、可能会产生NaN值的情况

1、表达式计算,

①如果一个表达式包含减号、乘号、除号、,js引擎在计算的时候,会先把表达式的各个部分转换为Number类型,(使用Number()函数转换)。如果转换失败,返回faNaN。

举例:

100 -'2a' ;// NaN

② 加号 (+) 不会将其两边的变量转化为 Number 类型,这是因为JS表达式的执行顺序是按照运算符的优先级从左到右依次进行的,如果加号 (+) 两边的变量都是 Number 类型时,才会做数字相加运算,如果其中有一个变量是字符串,则会将两边都作为字符串相加。

1 + 3 + ‘56’ = 456

1 + 3 + 5 = 9

扫描二维码关注公众号,回复: 1135732 查看本文章

2、类型转换

①直接使用ParseInt、ParseFloat、Number函数转化非数字的表达式,返回NaN。

②Number是转换整个数字,ParseInt和ParseFloat是转化遇到第一个非数字的前面部分。

例如

  ParseInt('123aa') //返回123

  ParseFloat('123aaa') //返回123

  Number(‘123aaa’)//返回NaN

3、如何判断一个数字是否NAN

isNaN(参数),该函数是判断这个参数使用Number函数转化后的值,所以要判断一个变量本省是否是NaN,不能使用这个函数,使用Number对象的isNaN函数。

Number.isNaN('123');// false 本身不是NaN

Number.isNaN( 'abc' ); // false 本身不是NaN
Number.isNaN(NaN); // true 本身是NaN

猜你喜欢

转载自www.cnblogs.com/2018-05-9-ygk/p/9110266.html