有符号零:将 -0 更改为 0

Signed Zero: Change -0 to 0

我刚遇到这个问题,我想知道:

-0 更改为普通 0 的最佳做法是什么?这让我感到困惑,为什么会有一种方法来设置带符号的值,但没有明确的方法将其更改为正常 0.

只需测试并重新分配即可。

if (var === -0) {
    var = 0;
}

如果 var 包含正数 0,这也会进行赋值,因为 0 === -0,但这没有坏处。

如果它应该是一个逻辑整数,通过与 0 的按位或运算强制整数上下文:

var x = -0;
console.log(x | 0);  # Produces 0

对于所有其他整数值,这是一个空操作(除了可能通过保证值是 JIT 优化的整数来加速某些浏览器中的代码;这是通知浏览器您想要整数行为的常用技巧由 JS 交叉编译器使用),并且由于 -0 不是合法的整数值,因此它将其转换为纯 0。