使变量值为正

ian*_*ian 45 javascript math

我有一个变量,有时会是负数,有时是正数.

在我使用之前,我需要让它变得积极.我怎么能做到这一点?

kem*_*002 55

使用Math.abs方法.

下面有一个关于使用否定的评论(感谢Kelly让我考虑到这一点),Math.abs如果你对Math.abs函数进行本地引用(没有本地引用Math.abs要慢很多),它会比大量的转换略快一些..

请查看此问题答案以获取更多详细信息.在小数字上,差异可以忽略不计,我认为Math.abs是一种更加清晰的"自我记录"代码的方式.

  • 这是旧的,但我想指出你使用abs的原因只是否定变量是你不知道它是正面的还是负面的并且不想使用if语句来检查. (4认同)
  • @cwallenpoole不是每个人都知道"绝对值"这个词. (3认同)

Kel*_*nch 23

在这两个选择之间(感谢@Kooilnc的例子):

Number.prototype.abs = function(){
    return Math.abs(this);
};
Run Code Online (Sandbox Code Playgroud)

var negative = -23, 
    positive = -negative>0 ? -negative : negative;
Run Code Online (Sandbox Code Playgroud)

和第二个(否定)一起去.它不需要函数调用,CPU可以用很少的指令来完成.快速,简单,高效.

  • 确认 `Math.abs` 在 Chrome 上快了近 10 倍:https://jsperf.com/ternary-vs-math-abs (2认同)

kgi*_*kis 14

if (myvar < 0) {
  myvar = -myvar;
}
Run Code Online (Sandbox Code Playgroud)

要么

myvar = Math.abs(myvar);
Run Code Online (Sandbox Code Playgroud)

  • 呃,这是数学,而不是编程. (2认同)