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