为什么 -0 存在
Why does -0 exist?
在试验JavaScript时。 我正在用一些奇怪的小代码片段进行测试,以下是我的一些发现(以帮助理解我是如何找到-0
的),
在控制台中执行+[]
时,这将返回0
。 我不知道为什么,但它确实如此。因此,这意味着数组的正值0
..
这样做之后,我很好奇并尝试了以下方法:
console.log(-[]);
这返回-0
...
有什么意义?0 和 -0 都没有值,所以负数真的是不必要的...... 还是吗?也许 JavaScript 有 -0 的目的?
除此之外。 除了使用-0
本身或使用-[]
之外,我找不到任何其他方法来复制-0
......
其他一些奇怪的发现,让我的问题-0
(-0) + (-0) = 0
(-0) - (-0) = -0
(-0) * (-0) = 0
(-0) / (-0) = NaN // of course
JavaScript使用
IEEE 754标准来表示数字。来自维基百科:
有符号零是带有关联符号的零。在普通算术中,−0 = +0 = 0。但是,在计算中,某些数字表示允许存在两个零,通常由 −0(负零)和 +0(正零)表示。这发生在整数的某些有符号数表示形式和大多数浮点数表示形式中。数字 0 通常编码为 +0,但可以用 +0 或 −0 表示。
IEEE 754 浮点运算标准(目前由大多数支持浮点数的计算机和编程语言使用)要求 +0 和 −0。零可以被视为扩展实数线的变体,例如 1/−0 = −∞ 和 1/+0 = +∞,除以零仅未定义 ±0/±0 和 ±∞/±∞。
来自这篇文章
这是为了帮助确定除以它时会发生什么。
如果除以+0
,则得到+Infinity
。如果除以-0
,则得到-Infinity
。(当然,对于非零分子)。
相关文章:
- 为什么JavaScript中存在单态和多态性问题
- 为什么没有从数组中存在的对象中删除属性
- 为什么属性存在于对象实例上,即使其原型发生了更改
- 事件处理程序连接在哪里,以及它为什么存在
- 为什么不允许值为0的变量询问是否存在
- 默认选中;为什么这个属性甚至存在
- 我把“;类“;SVG中存在但未应用的节点的属性!为什么?
- 为什么indexOf()在值存在时仍然返回-1
- 为什么在删除指令之后“;人;类的实例仍然存在
- 为什么对匿名函数的引用继续存在
- 为什么我的代码不能用于查找 JavaScript 中的数组中是否存在值
- 为什么JS需要对象/数组存在
- 为什么当我刚刚创建 DOM 元素时它不存在
- 为什么在 php 网站中存在恶意软件问题 在 javascript 文件中不断存在
- 为什么 jquery 在我刷新时显示“禁用”属性存在
- 为什么在 JavaScript 中引用对象的不存在属性不会返回引用错误
- 打字稿 - 为什么猫鼬中不存在“方法”属性
- 为什么命名的 JavaScript 函数仍然存在
- 控制不存在.为什么
- function()存在,但prototype function()不存在;不存在.为什么