Javascript:将正数更改为负数?

时间:2016-10-04 06:02:01

标签: javascript

我一直在尝试执行以下操作 - 将正数更改为负数。

看来有很多方法可以做到这一点。有标准的

x *= -1

或只是在变量前面放一个负号,即如果x = 5,则-x等于-5。

这似乎是一个很好的速记,但想知道区别是什么,我无法在MDN上找到有关此简写的任何文档。

我认为还有其他方法。

可能是一个基本问题,但是很难理解这种明显的简写。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

Javascript中的一元运算符基本上都是速记函数。您可以找到Unary (-) here

的文档

-接受一个参数。你传递给它的号码。在引擎盖下,我猜它将它乘以-1并返回产品。该功能可以写成:

function -(arg) {
  return arg * -1;
}

这是猜想。需要通过V8的代码库来确定。

<强>更新

因此,通过进一步的研究,我认为它不是乘以-1,而是一个简单的符号变化。我提到了V8的实现,但事实证明这是一个死路一条,因为我吮吸C ++,但在检查了{Hollerch的精彩博客中ECMA's specsIEEE 754 specs时所定义的,我倾向于反转符号位。所有Javascript编号都是64位IEEE 754浮点数,它们可以表示如下:

SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM

S是符号位。所以看起来一元-只是翻转符号位。