javascript有负零的概念吗

发布于 2024-11-26 11:14:37 字数 406 浏览 0 评论 0原文

考虑以下问题

var l = console.log.bind(console);
l(-0); // 0
l(0); // 0
l(0 === -0); // true
l(0 == -0); // true
l(1 / 0); // Infinity
l(1 / -0); // -Infinity
  • 为什么负零等于零?
  • 既然相等,为什么它的行为不同?

额外问题

  • 0/-0 组合是唯一使相同对象表现不同的组合吗?

我知道 NaN/NaN 是不相等对象行为相同的组合。

Consider the following

var l = console.log.bind(console);
l(-0); // 0
l(0); // 0
l(0 === -0); // true
l(0 == -0); // true
l(1 / 0); // Infinity
l(1 / -0); // -Infinity
  • Why is negative zero equal to zero ?
  • Given it's equal why does it behave differently ?

Bonus question:

  • Is the 0/-0 combination the only combination where equal objects behave differently?

I know NaN/NaN is a combination where non-equal objects behave the same.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱桃奶球 2024-12-03 11:14:37

为什么负零等于零?

因为 IEEE 754 要求它

0/-0 组合是唯一使相同对象表现不同的组合吗?

我相信是这样。在 Javascript 中,只有数字有特殊的 === 算法,并且 0、-0、NaN 是唯一的特殊情况(ECMA-262 §11.9.6)。

Why is negative zero equal to zero ?

Because IEEE 754 demands it.

Is the 0/-0 combination the only combination where equal objects behave differently?

I believe so. In Javascript, only Numbers have a special === algorithm, and 0, -0, NaN are the only special cases there (ECMA-262 §11.9.6).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文