+ =(加上相等)如何工作?

时间:2011-07-26 06:43:49

标签: javascript

我对+ =符号有点困惑。它是如何工作的?

  1. 1 += 2 //等于?

  2. var data = [1,2,3,4,5];
    var sum = 0;
    data.forEach(function(value) {
        sum += value; 
    });
    sum = ?
    

14 个答案:

答案 0 :(得分:67)

1 += 2是语法错误(左侧必须是变量)。

x += yx = x + y的缩写。

答案 1 :(得分:29)

1)1 + = 2 //等于?

这在语法上是无效的。左侧必须是变量。例如。

var mynum = 1;
mynum += 2;
// now mynum is 3.

mynum += 2;只是mynum = mynum + 2;

的缩写

2)

var data = [1,2,3,4,5];
var sum = 0;
data.forEach(function(value) {
    sum += value; 
});

总和现在是15。 展开我们的forEach:

var sum = 0;
sum += 1; // sum is 1
sum += 2; // sum is 3
sum += 3; // sum is 6
sum += 4; // sum is 10
sum += 5; // sum is 15

答案 2 :(得分:14)

这只是一个简短形式:

sum = sum + value;

答案 3 :(得分:12)

JavaScript中的

+=(以及许多其他语言)将右侧添加到左侧的变量,将结果存储在该变量中。因此,1 +=2的示例没有意义。这是一个例子:

var x = 5;
x += 4; // x now equals 9, same as writing x = x + 4;
x -= 3; // x now equals 6, same as writing x = x - 3;
x *= 2; // x now equals 12, same as writing x = x * 2;
x /= 3; // x now equals 4, same as writing x = x / 3;

在您的具体示例中,循环是对数组data中的数字求和。

答案 4 :(得分:5)

+=运算符用于连接字符串或添加数字。

它将使用旁边的数量增加sum变量。

var sum = 0;
var valueAdded = 5; 

sum += valueAdded;
  

sum = 5

答案 5 :(得分:3)

你必须知道:

  • 分配运算符语法为:variable = expression;

    因此1 += 2 - > 1 = 1 + 2不是有效语法,因为左操作数不是变量。这种情况下的错误是ReferenceError: invalid assignment left-hand side

  • x += yx = x + y的缩写形式,其中x是变量,x + y是表达式。

    总和的结果是 15

      sum = 0;
      sum = sum + 1; // 1
      sum = sum + 2; // 3
      sum = sum + 3; // 6
      sum = sum + 4; // 10
      sum = sum + 5; // 15

其他assignment operator快捷方式的工作方式相同(相对于它们所引用的标准操作)。

答案 6 :(得分:3)

...不要忘记混合类型时会发生什么:

x = 127;
x += " hours "
// x is now a string: "127 hours "
x += 1 === 0;
// x is still a string: "127 hours false"

答案 7 :(得分:1)

a += ba = a +b的简写,意思是:

1)1 += 2 //不会编译

2)15

答案 8 :(得分:1)

这只是大多数语言中的简写符号。这意味着

  

X = X + 1;

我们可以对 x- = 1,x * = 1,x / = 1 执行相同的操作; 这意味着

> X = X-1; X = X * 1; X = X / 1;

答案 9 :(得分:0)

x+=yset x to x + y的多种语言的简写。如其名称所示,总和将是data中数字的总和。

答案 10 :(得分:0)

1+=2!=2意味着 你要添加1+2。 但这会给你一个语法错误。 假设变量是int类型int a=1; 然后 a+=2;意思是a=1+2;并将a的值从1增加到3。

答案 11 :(得分:0)

x += 1只是x = x + 1的简写 它也可以用于字符串:

var string = "foo"
string += "bar"

答案 12 :(得分:0)

确切地说,a + = b实际上并不等于a = a + b。它实际上是a = a +(b)。为何如此?让我给你看一个演示

a = 1;
console.log('a += 1<<2: ', a += 1<<2); // results in 5

a = 1;
// If a += b is equal to a = a + b then this would be 5. But as you see this is not. The result is 8.
console.log('a + 1 << 2: ', a + 1 << 2); // results in 8


a = 1;
// As you can see this results in 5.
console.log('a + (1<<2): ', a + (1<<2)); // results in 5

因为+ =或* =或-=或/ =等运算符隐式地将右侧分组。

答案 13 :(得分:-1)

  1. 1 += 2不会引发错误,但是您仍然不应该这样做。在此语句中,您基本上说的是“集合1等于1 + 2”,但是1是常数,而不是:number:string类型的变量,因此它可能什么也不做。说
    var myVariable = 1
    myVariable += 2
    console.log(myVariable)
    
    3登录到控制台,因为x += y只是x = x + y的缩写
  2. var data = [1,2,3,4,5]
    var sum
    data.forEach(function(value){
      sum += value
    })
    
    将使sum = 15,因为:
    sum += 1 //sum = 1
    sum += 2 //sum = 3
    sum += 3 //sum = 6
    sum += 4 //sum = 10
    sum += 5 //sum = 15