我正在阅读有关 NaN
here 的内容它说:
A comparison with a NaN always returns an unordered result even when comparing with itself.
我对“无序”这个词感到困惑。出于实际原因,这是否意味着比较将始终评估为 false
?看来是这样的:
// all statemens below evaluate to false
NaN === NaN
NaN > NaN
NaN < NaN
NaN > 3
NaN < 3
NaN === 3
最佳答案
是的。比较两个 float 时a
和b
,恰好有 4 个结果之一:
-
a
小于b
-
a
等于b
-
a
大于b
-
a
和b
是无序的。
IEEE754 规范规定 a
和b
当 a
时是无序的或b
是 NaN(包括 a
和 b
都为 NaN 的情况)。
在大多数语言中,前 3 个都有自己的谓词(通常为 <
、 ==
、 >
)。无序情况则不然,但可以通过检查所有其他情况是否为假来进行测试。
关于javascript - `always returns unordered result` 意味着 `returns false` 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39991705/