在尝试使用JavaScript时.我正在测试一些奇怪的小代码片段,这里有一些我的发现(以帮助理解我是如何发现的-0),
虽然这样做+[]在控制台中,这将返回0.我不确定为什么,但确实如此.所以,这意味着数组的正面是0......
在这样做之后,我很好奇并尝试了以下方法:
console.log(-[]);
Run Code Online (Sandbox Code Playgroud)
这回来了-0......
-0有什么意义?0和-0都没有值,所以负面实际上是不必要的......或者是它?也许JavaScript有-0的目的?
加上那个.我找不到任何其他方式来重现-0除了使用-0自己,或使用-[]...
其他一些奇怪的发现,加剧了我的问题 -0
(-0) + (-0) = 0
(-0) - (-0) = -0
(-0) * (-0) = 0
(-0) / (-0) = NaN // of course
Run Code Online (Sandbox Code Playgroud)
JavaScript 使用IEEE 754 标准来表示数字。来自维基百科:
\n\n\n有符号零是带有相关符号的零。在普通算术中,\xe2\x88\x920 = +0 = 0。然而,在计算中,某些数字表示允许存在两个零,通常表示为\xe2\x88\x920(负零)和+0(正零)零)。这种情况发生在整数的某些带符号数字表示形式以及大多数浮点数表示形式中。数字 0 通常编码为 +0,但也可以用 +0 或 \xe2\x88\x920 表示。
\n浮点运算的 IEEE 754 标准(目前被大多数支持浮点数的计算机和编程语言使用)需要 +0 和 \xe2\x88\x920。零可以被视为扩展实数轴的变体,例如 1/\xe2\x88\x920 = \xe2\x88\x92\xe2\x88\x9e 和 1/+0 = +\xe2\x88\x9e ,除以零仅对于 \xc2\xb10/\xc2\xb10 和 \xc2\xb1\xe2\x88\x9e/\xc2\xb1\xe2\x88\x9e 未定义。
\n
从这篇文章
\n| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |