我理解这背后的原因.我对技术实施感到好奇.无法在某个地方找到这个.
我的理论是,只要在任何比较中评估左NaN,它就会自动返回false而根本不进行比较.它是否正确?
是 - 如果两种类型相同,并且它们是数字,那么如果左边是数字,那么NaN结果是false,而不检查正确的值:
https://www.ecma-international.org/ecma-262/6.0/#sec-strict-equality-comparison
7.2.13严格的平等比较
比较x === y,其中x和y是值,产生真或假.这样的比较如下进行:
如果Type(x)与Type(y)不同,则返回false.
如果Type(x)是Undefined,则返回true.
如果Type(x)为Null,则返回true.
如果Type(x)是Number,那么
如果x是NaN,则返回false.
如果y是NaN,则返回false.
如果x与y的Number值相同,则返回true.
如果x是+0且y是-0,则返回true.
如果x是-0且y是+0,则返回true.
返回false.
...
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |