JavaScript 中的 0 和 -0 相同吗?
尽管 ECMAScript 5.1 规范中做出了区分,但 0 和 -0 的计算结果是true 在 JavaScript 中使用严格相等。
这是为什么?
JavaScript 采用 IEEE 754 标准进行数字表示。根据该标准,有符号零可以以两种形式存在:0(正零)和-0(负零)。然而,除以 0 或 -0 分别会得到 ∞ 和 -∞,而不是未定义。
从技术上讲,0 和 -0 之间的区别至关重要。然而,JavaScript 在其严格相等算法中提供了一个例外。第 11.9.6 节明确指出,在严格相等比较中,0 和 -0 被视为相等。
此异常与将 0 和 -0 视为相等的逻辑概念一致。此外,它无需在代码中考虑这种区别,从而简化了开发。
注意:
ES2015 引入了 Object.is 作为新的比较方法。与松散和严格相等运算符不同,Object.is 明确区分 0 和 -0:
Object.is(-0, +0); // false
以上是JavaScript 中 0 和 -0 被视为相等吗?的详细内容。更多信息请关注PHP中文网其他相关文章!