尝试使用JavaScript时。我正在测试一些奇怪的小代码片段,这里有一些我的发现(以帮助理解我是如何发现的-0
),
在控制台中执行+[]
时,会返回0
。我不确定为什么,但确实如此。
因此,这意味着数组的正数为0
..
这样做之后,我好奇并尝试了以下内容:
console.log(-[]);
这会返回-0
...
-0有什么意义? 0和-0都没有值,所以负面实际上是不必要的......或者是它?也许JavaScript的目的是-0?
添加到那个。除了使用-0
本身或使用-0
之外,我找不到任何其他方式来重现-[]
...
其他一些奇怪的发现,引发了我对-0
(-0) + (-0) = 0
(-0) - (-0) = -0
(-0) * (-0) = 0
(-0) / (-0) = NaN // of course
答案 0 :(得分:3)
JavaScript使用IEEE 754 standard来表示数字。来自Wikipedia:
带有关联符号的有符号零为零。在普通算术中,-0 = + 0 = 0.但是,在计算中,某些数字表示允许存在两个零,通常用 -0(负零)和 +0表示(正零)。这发生在整数的一些有符号数表示中,并且在大多数浮点数表示中。数字0通常编码为+0,但可以用+0或-0表示。
用于浮点运算的IEEE 754标准(目前大多数支持浮点数的计算机和编程语言都使用)需要+0和-0。零可以被认为是扩展实数线的变体,使得1 / -0 =-∞和1 / + 0 = +∞,除以0仅对于±0 /±0和±∞/±∞未定义
从此Post
答案 1 :(得分:2)
帮助确定除以它时会发生什么。
如果除以+0
,则获得+Infinity
。如果除以-0
,则获得-Infinity
。 (当然,对于非零分子)。