NaN是一个全局对象的属性,NaN属性的初始值是一个不可配置的,不可写的属性。在ES3中这个属性值是可以改变的,但是也应该避免覆盖。
判断一个值是不是NaN
等号运算符(==和===)不能被用来判断一个值是否是NaN。必须使用Number.isNaN或者NaN()函数。在执行自比较之中,NaN也只有NaN不等于其本身
console.log(NaN === NaN);//false
console.log(Number.NaN === NaN);//false
isNaN(NaN);//true
isNaN(Number.NaN);//true
Number.NaN的值是number类型的值,其值一般是NaN
Number.NaN不与任何值相等,包括其本身。若要测试某值是否等效于Number.NaN,需要使用isNaN函数