关于NaN

<1> NaN是什么

NaNnot a number 不是一个数值表示存储的数据的数据类型如果有非数值参与计算,结果就是 NaN.

                        

如图所示,由于两个变量中存储的数据都不是数值(字符串),所以它的执行结果就是NaN

                

如图所示,由于上方代码中使用的是加法运算,“+”加号有字符串拼接的作用,所以它的执行结果是将str1跟str2拼接,这是例外

<2> NaN == NaN的结果是什么

            

上图所示,我们可以看出不论是直接比较NaN,还是利用等式比较它们的结果(结果就是NaN),NaN == NaN的执行结果都是flase

例外:当等式两边执行加法的时候,会出现字符串的拼接,此时的执行结果就会是true

<3> 为什么

JavaScript的规定, NaN表示的是非数字, 但是这个非数字也是不同的因此 NaN 不等于 NaN两个NaN永远不可能相等

<4> 总结

1.NaN虽然表示是一个非数字 , 但是一般是算术运算执行的结果因此NaN仍然是数值类型

2.执行运算时非加法运算,只要有NaN参与,执行结果都是NaN

如果是加法运算,有 NaN 执行字符串拼接操作都是数值执行加法运算

3.NaN永远不会等于NaNNaN == NaN 执行结果是false

JavaScript的规定, NaN表示的是非数字, 但是这个非数字也是不同的因此 NaN 不等于 NaN两个NaN永远不可能相等

猜你喜欢

转载自www.cnblogs.com/gnn0804/p/12499350.html
NaN