介绍一下什么是js中的NAN

NAN是属于​JavaScript的数值类型Number类型​。NaN意思是指数据not a number不是一个数字,但是NAN却​属于数值类型。

那么NaN在什么情况下会出现呢?

一般来说都是本来要输出一个数值,但是在输出的数值类型出现错误时,系统难以识别。但是系统没有报错,而是返回了NaN。例如下面这种情况,b是数值类型,a是字符串,所以参与运算后c值输出结果就是NaN,也就是Number类型。0/0也会出现NaN。

编程语言_JavaScript_面试题003_值类型

需要注意的是,​NAN 不会和任何一个值相等​,包括NAN本身。运行结果都为false。

编程语言_JavaScript_面试题003_值类型_02

但是其他的数据类型相比较的结果都为true。

编程语言_JavaScript_面试题003_字符串_03

那么如何判断一个值是否是NaN呢?我们可以使用isNaN()函数来判断数字是否非法。返回值是Boolean类型。如果参数是NaN,返回true否则false。但是isNaN()和我们最开始的理解是有一点偏差的,isNaN()输出其实是根据参数​是否能被Number()合法转化为数字​。例如字符串或者布尔值。

编程语言_JavaScript_面试题003_字符串_04

Number()可以合法的将包含数字的字符串转化为数字类型,所以被isNaN判定为false。