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

时间:2017-04-19 22:40:32

标签: javascript signed

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

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

2 个答案:

答案 0 :(得分:2)

如果它应该是一个逻辑整数,则按位或按0强制整数上下文:

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

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

答案 1 :(得分:1)

试试并重新分配。

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

如果var包含正数0,这也将执行作业,因为0 === -0,但是没有任何损害。