Javascript:将正数更改为负数?

Javascript:将正数更改为负数?,javascript,Javascript,我一直在尝试做下面的事情——把一个正数改成负数 似乎有很多方法可以做到这一点。这是标准 x *= -1 或者只是在变量前面放一个负号,即如果x=5,那么-x等于-5 这似乎是一个很好的速记,但想知道区别是什么,我找不到任何关于MDN速记的文档 我想还有其他方法 可能是一个基本的问题,但不理解这种明显的速记方式很烦人 有什么想法吗?Javascript中的一元运算符基本上都是速记函数。您可以找到一元(-) -接受一个参数。你传给它的号码。在引擎盖下,我猜它将其乘以-1,然后返回产品。该函数可以按

我一直在尝试做下面的事情——把一个正数改成负数

似乎有很多方法可以做到这一点。这是标准

x *= -1
或者只是在变量前面放一个负号,即如果x=5,那么-x等于-5

这似乎是一个很好的速记,但想知道区别是什么,我找不到任何关于MDN速记的文档

我想还有其他方法

可能是一个基本的问题,但不理解这种明显的速记方式很烦人


有什么想法吗?

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

-
接受一个参数。你传给它的号码。在引擎盖下,我猜它将其乘以
-1
,然后返回产品。该函数可以按照以下方式编写:

function -(arg) {
  return arg * -1;
}
但这只是猜测。需要通过V8的代码库才能确定

更新:

因此,从进一步的研究中,我认为它不是乘以
-1
,而是一个简单的符号变化。我提到了V8的实现,但这证明是一个死胡同,因为我吸吮C++,但是在检查和定义Steve Hollasch的精彩博客这里,我倾向于反转符号位。所有Javascript数字都是64位IEEE 754浮点,可以这样表示:

SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM

其中,
S
是符号位。因此,看起来一元
-
只是翻转符号位。

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

-
接受一个参数。你传给它的号码。在引擎盖下,我猜它将其乘以
-1
,然后返回产品。该函数可以按照以下方式编写:

function -(arg) {
  return arg * -1;
}
但这只是猜测。需要通过V8的代码库才能确定

更新:

因此,从进一步的研究中,我认为它不是乘以
-1
,而是一个简单的符号变化。我提到了V8的实现,但这证明是一个死胡同,因为我吸吮C++,但是在检查和定义Steve Hollasch的精彩博客这里,我倾向于反转符号位。所有Javascript数字都是64位IEEE 754浮点,可以这样表示:

SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM

其中,
S
是符号位。因此,看起来一元数
-
只是翻转符号位。

这将对您有所帮助“速记”必须起作用,否则如何将
1
更改为
-1
以使用
*=-1
选项?(另请注意,
-
*
都试图将其操作数转换为数字,因此
x*=“-1”
工作正常,
x=“12”;x=-x;
)在下面添加了一些详细信息@martin这将对“速记”有所帮助必须工作,否则如何将
1
更改为
-1
以使用
*=-1
选项?(另请注意,
-
*
都试图将其操作数转换为数字,因此
x*=“-1”
工作正常,
x=“12”;x=-x;
)在@martin>下面添加了更多细节