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
- 使用
Object.is
时,NaN
终于等于了自己。 - 等于操作符
==
和===
有什么区别