javascript中NaN的比较
在Javascript中,如果将字符串与数字相乘,则得到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
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与其填充文本以绕过质量过滤器,不如实际添加一个问题?你把代码格式化得很好,问题出在你的问题正文的其余部分。与其用填充文本来绕过质量过滤器,不如实际添加一个问题?您成功地格式化了代码,这里的问题是您的问题主体的其余部分。