询问 0 的本质:0 和 -0 相同吗?
ECMAScript 5.1 规范已将 0 和 -0 定义为不同的实体。这就提出了一个问题:为什么 0 === -0 返回 true?
IEEE 754 揭示了有符号零的存在
JavaScript 采用 IEEE 754 标准来代表数字。该标准引入了“有符号零”的概念,其中 -0 和 0 均被识别。它是扩展实数轴的变体,允许存在对无穷大的不同解释(1/−0 = −∞ 和 1/ 0 = ∞)。
理论区别,实际平等
虽然 0 和 -0 在 Javascript 的表示中理论上是不同的,但严格相等比较第 11.9.6 节中的算法明确要求出于比较目的将 0 和 -0 视为相等。做出这个决定是为了简化编码并避免不必要的复杂性。
关于 Object.is 的说明
随着 ES2015 的推出,引入了一种新的比较方法:Object 。是。它明确区分 -0 和 0,如 Object.is(-0, 0); // 错误的。然而,这种方法通常只推荐用于区分有符号零至关重要的特定情况。
以上是为什么 JavaScript 将 0 和 -0 视为相等,尽管它们的表示方式不同?的详细内容。更多信息请关注PHP中文网其他相关文章!