JavaScript中的“minus equals”是什么意思?

13
< p >下面的减等于号-=是什么意思/做什么?< /p >
$('#wrapper').animate({
    backgroundPosition: '-=2px'
})();

谢谢你

2个回答

40

虽然Adil已经回答过这个问题,但我认为将问题可视化并与其他问题建立联系是非常有用的。

以下两段代码具有相同的效果:

var a = 20;
a = a - 5;

var a = 20;
a -= 5;

在两种情况下,a现在都等于15。

这是一个赋值运算符,这意味着它会将运算符右侧的内容应用于左侧的变量。请参阅以下表格以获取赋值运算符及其功能的列表:

Operator |  Example |  Same as    |  Result
______________________________________________
  =      |  a = 20  |             |  a = 20
  +=     |  a += 5  |  a = a + 5  |  a = 25
  -=     |  a -= 5  |  a = a - 5  |  a = 15
  *=     |  a *= 5  |  a = a * 5  |  a = 100
  /=     |  a /= 5  |  a = a / 5  |  a = 4
  %=     |  a %= 5  |  a = a % 5  |  a = 0

你还有自增和自减运算符:

++--,其中 ++a--a 分别等于 21 和 19。你经常会发现这些被用来迭代 for 循环

根据顺序不同会做出不同的事情。

使用后缀a++)表示法时,它会先返回数字然后再增加变量:

var a = 20;
console.log(a++); // 20
console.log(a); // 21

使用前缀 (++a) 会先递增变量再返回它。

var a = 20;
console.log(++a); // 21
console.log(a); // 21

此外,还有 a++;a--;,它们将从当前设置的 a 值中加上或减去一个。 - Chase Florell
哦,我明白了,谢谢你解释。所以基本上 a -= 5 的意思是:a = 5,然后从当前的值 5 中减去 5,对吗? - David Van Staden
不完全正确。var a = 20; // 将值设置为20 然后 a -= 5 // 将a的新值设置为15 - Chase Florell
“先返回数字,然后增加变量”是一个常见的解释,但并不太合理——操作符在返回后怎么可能还能做什么呢?从技术上讲,你的意思是“增加变量,然后返回增加前的值”。有时候准确性很重要,否则人们可能会对像i++ || bar(i)这样的表达式的含义感到困惑。(在JavaScript中,bar()保证传递的是i的后增值,而不是原始值;在C++中,这是未指定的。) - Mark Amery
就像在某人发展的阶段一样,最好选择最简单的路线,即使教授的内容是错误的(如玻尔模型),也可以稍后进行更正。你不想让别人陷入他们还不需要了解的东西中,最好先理解这个概念,然后自己学习代码运行、事件循环、解释器或者你所处的环境。好了,我现在要去睡觉了。 - George Reith
显示剩余6条评论

5
操作符-=(减法赋值)将从变量已经设置的value中减去给定的值。
例如:
var a = 2;
a -= 1;
//a is equal to 1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接