`always returns unordered result` 是否意味着`returns false`

Does `always returns unordered result` meaning `returns false`

我正在阅读有关 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

是的。当比较两个浮点数 ab 时,将恰好有 4 个结果中的 1 个:

  • a小于b
  • a 等于 b
  • a 大于 b
  • ab 是无序的。

IEEE754 规范指出,当 ab 是 NaN 时,ab 是无序的(包括 ab 是 NaN).

在大多数语言中,前 3 个都有自己的谓词(通常是 <==>)。无序情况不会,但可以通过检查所有其他情况是否为假来进行测试。