javascript中NaN的比较

javascript中NaN的比较,javascript,Javascript,在Javascript中,如果将字符串与数字相乘,则得到NaN: console.log("manas" * 5); // result is NaN 那么,为什么以下代码会导致false而不是true console.log("manas" * 5 == NaN) // results false 改用isNaN功能 console.log(isNaN("manas" * 5)); NaN不是数字,是一个特殊类型的值,用于表示不可表示的值。使用JavaScript时,NaN

在Javascript中,如果将字符串与数字相乘,则得到
NaN

 console.log("manas" * 5); // result is NaN    
那么,为什么以下代码会导致
false
而不是
true

console.log("manas" * 5 == NaN)  // results false

改用
isNaN
功能

console.log(isNaN("manas" * 5));

NaN不是数字,是一个特殊类型的值,用于表示不可表示的值。使用JavaScript时,NaN可能会引起一些混乱,从它的类型到处理比较的方式

因此,多个操作可能导致NaN。
因为有很多方法可以表示一个NaN,所以一个NaN不等于另一个NaN是有道理的。

使用
isNaN
函数

console.log(isNaN("manas" * 5));

NaN不是数字,是一个特殊类型的值,用于表示不可表示的值。使用JavaScript时,NaN可能会引起一些混乱,从它的类型到处理比较的方式

因此,多个操作可能导致NaN。
因为有很多方法来表示一个NaN,所以一个NaN不等于另一个NaN是有道理的。

NaN
是一个特殊的数值,它不等于任何东西,包括它本身。要正确测试
NaN
,您需要使用函数

根据规范:

如果参数强制为NaN,则返回true,否则返回false

以下是同一版本中的有用注释:

ECMAScript代码测试值X是否为NaN的可靠方法是
X!==X
。当且仅当X为NaN时,结果才为真


NaN
是一个特殊的数值,它不等于任何东西,包括它本身。要正确测试
NaN
,您需要使用函数

根据规范:

如果参数强制为NaN,则返回true,否则返回false

以下是同一版本中的有用注释:

ECMAScript代码测试值X是否为NaN的可靠方法是
X!==X
。当且仅当X为NaN时,结果才为真

NaN将不相等(通过==、!=、==、和!==)与任何其他值(包括另一个NaN值)进行比较。使用Number.isNaN()或isNaN()最清楚地确定值是否为NaN。或者进行自我比较:NaN,而且只有NaN,会与自身进行不平等的比较。

NaN将不相等(通过==、!=、==、和!==)与任何其他值(包括另一个NaN值)进行比较。使用Number.isNaN()或isNaN()最清楚地确定值是否为NaN。或者进行自我比较:NaN,而且只有NaN,会与自身进行不平等的比较。
Javascript没有那么聪明-当
==
操作符的任一侧为
Nan
时,整个过程的计算结果为false(类似于如果
|
的左侧为
false
,则它不必查看右侧)

因此,即使
Nan==Nan
也将返回false

这是一篇关于Nan行为的好文章


Javascript没有那么聪明-当
==
操作符的任一侧为
Nan
时,整个过程的计算结果为false(类似于如果
|
的左侧为
false
,则它不必查看右侧)

因此,即使
Nan==Nan
也将返回false

这是一篇关于Nan行为的好文章

在Javascript中

NaN == NaN    //always results false.
(在javascript中,NaN与自身的自我比较总是错误的)

参考:

另请参见Javascript中的

NaN == NaN    //always results false.
(在javascript中,NaN与自身的自我比较总是错误的)

参考:


另请参见

NaN也不等于自身NaN==NaN//falseNaN也不等于自身NaN==NaN//falseNaN与其填充文本以绕过质量过滤器,不如实际添加一个问题?你把代码格式化得很好,问题出在你的问题正文的其余部分。与其用填充文本来绕过质量过滤器,不如实际添加一个问题?您成功地格式化了代码,这里的问题是您的问题主体的其余部分。