有符号零:将 -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。
我刚遇到这个问题,我想知道:
将 -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。