我一直在尝试执行以下操作 - 将正数更改为负数。
看来有很多方法可以做到这一点。有标准的
x *= -1
或只是在变量前面放一个负号,即如果x = 5,则-x等于-5。
这似乎是一个很好的速记,但想知道区别是什么,我无法在MDN上找到有关此简写的任何文档。
我认为还有其他方法。
可能是一个基本问题,但是很难理解这种明显的简写。
有什么想法吗?
答案 0 :(得分:3)
Javascript中的一元运算符基本上都是速记函数。您可以找到Unary (-)
here
-
接受一个参数。你传递给它的号码。在引擎盖下,我猜它将它乘以-1
并返回产品。该功能可以写成:
function -(arg) {
return arg * -1;
}
这是猜想。需要通过V8的代码库来确定。
<强>更新强>
因此,通过进一步的研究,我认为它不是乘以-1
,而是一个简单的符号变化。我提到了V8的实现,但事实证明这是一个死路一条,因为我吮吸C ++,但在检查了{Hollerch的精彩博客中ECMA's specs和IEEE 754 specs时所定义的,我倾向于反转符号位。所有Javascript编号都是64位IEEE 754浮点数,它们可以表示如下:
SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM
S
是符号位。所以看起来一元-
只是翻转符号位。