JavaScript 中唯一自己不等于自己的值是谁?

NaN (Not-a-Number) 无论使用什么比较运算符进行比较时,他是唯一不等于自身的值。NaN 通常是没有意义的数学计算的结果,因此两个 NaN 值被认为相等是没有意义的。

  • 根据上述,可以简单的实现 isNaN:
const isNotNumber = x => x !== x
  • isNaN()Number.isNaN() 的区别如下:
isNaN(NaN); // true
isNaN('A String'); // true
isNaN(undefined); // true
isNaN({}); // true
Number.isNaN(NaN); // true
Number.isNaN('A String'); // false
Number.isNaN(undefined); // false
Number.isNaN({}); // false