在javascript语言里有两个特殊的数值,就是NaN和Infinity。
NaN代表一个不是正常数值运算结果的值,比如以下代码的执行结果就是NaN:
1/'a'
个人感觉NaN是个随机的值,它不能和任何数值进行对比,包括它自己:
> NaN == NaN
false
不过有一个办法可以判断:
var a = NaN;
isNaN(a)
true
Infinity表示大于64位浮点型能表示的最大值的值:
> 1/0
Infinity
不过Infinity可以和自己做对比,也可以和正常的数值做对比:
> Infinity > 1
true
> Infinity < 1
false
> Infinity == Infinity
true
那Infinity有没有负值呢?我们抱着试试的态度:
> -1/0
-Infinity
哈哈,好神奇吧