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>下面添加了更多细节