NaN
是特殊的Number
值与其他所有值都不相等,包括它自己.
NaN === NaN; //false
唯一判断NaN的方法是isNaN()
的值判断,值为true时是NaN.
isNaN(NaN); //true
浮点数相等比较
1/3 === (1- 1/2); //false
这不是JavaScript的设计缺陷。浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:
Math.abs(1/3- (1- 1/2))<0.00001; //true