0 和 -0 的区别和相等
ECMAScript 5.1 规范区分 0 和 -0,提出了为什么 0 的问题=== -0 计算结果为 true。
IEEE 754标准
JavaScript 采用 IEEE 754 标准来表示数字。根据 IEEE 754,有符号零允许正零 (0) 和负零 (-0)。浮点运算需要这种区别,因为 1/-0 = -∞ 和 1/ 0 = ∞。
严格相等比较算法
尽管有技术上的限制区别,规范的第 11.9.6 节明确定义了 0 和 的严格相等比较算法的行为-0:
逻辑和实践原理
从逻辑上讲,它将 0 和 -0 视为相等是有意义的。区分它们会使代码变得复杂,尤其是在使用零时。
Object.is 比较方法
ES2015 引入了 Object.is 来进行更精确的比较。 Object.is 明确区分 0 和 -0:
Object.is(-0, +0); // false
以上是为什么 JavaScript 中 ` 0 === -0` 计算结果为 True,而 `Object.is(-0, 0)` 返回 False?的详细内容。更多信息请关注PHP中文网其他相关文章!