事实证明,+0 === -0计算结果为true,尽管+0和-0是不同的实体.那么,你如何区分+0从-0?
有一个黑客:
if (1 / myZero > 0) {
// myZero is +0
} else {
// myZero is -0
}
Run Code Online (Sandbox Code Playgroud)
我可以做得更好吗?
pim*_*vdb 14
这仍然是某种黑客,但看看规格表明:
Math.atan2(0, -0) === Math.PI // true
Math.atan2(0, 0) === 0 // true
Run Code Online (Sandbox Code Playgroud)
根据David Flanagan的书,p.34,将1除以零将产生相应的无穷大,然后可以在等式检查中使用:
1 / 0
> Infinity
1 / -0
> -Infinity
Run Code Online (Sandbox Code Playgroud)
这是无穷大的平等比较的行为:
Infinity === -Infinity
> false
Infinity === Infinity
> true
-Infinity === Infinity
> false
-Infinity === -Infinity
> true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2957 次 |
| 最近记录: |