I'm a bit confused with the += sign. How does it work?

`1 += 2`

// equals ?and this

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

`1 += 2`

is a syntax error (left-side must be a variable).

`x += y`

is shorthand for `x = x + y`

.

1) 1 += 2 // equals ?

That is syntactically invalid. The left side must be a variable. For example.

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

`mynum += 2;`

is just a short form for `mynum = mynum + 2;`

2)

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

Sum is now 15. Unrolling the forEach we have:

```
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
```

That is just a short form for:

```
sum = sum + value;
```

`+=`

in JavaScript (as well as in many other languages) adds the right hand side to the variable on the left hand side, storing the result in that variable. Your example of `1 +=2`

therefore does not make sense. Here is an example:

```
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;
```

In your specific example the loop is summing the numbers in the array `data`

.

`+=`

operator is used to concatenate strings or add numbers.

It will increment your sum variable with the amount next to it.

```
var sum = 0;
var valueAdded = 5;
sum += valueAdded;
```

sum = 5

You have to know that:

Assignment operators syntax is:

`variable = expression;`

For this reason

`1 += 2`

->`1 = 1 + 2`

is not a valid syntax as the left operand isn't a variable. The error in this case is`ReferenceError: invalid assignment left-hand side`

.`x += y`

is the short form for`x = x + y`

, where`x`

is the variable and`x + y`

the expression.The result of the sum is

**15**.

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

Other assignment operator shortcuts works the same way (relatively to the standard operations they refer to). .

...and don't forget what happens when you mix types:

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

`a += b`

is shorthand for `a = a +b`

which means:

1) `1 += 2`

// won't compile

2) 15

As everyone said above

```
var str = "foo"
str += " bar"
console.log(str) //will now give you "foo bar"
```

Check this out as well https://www.sitepoint.com/shorthand-javascript-techniques/

that's just a shorthand notation in most languages.which means that

x=x+1;

we can do the same operation for **x-=1,x*=1,x/=1**;
which means

`x+=y`

is shorthand in many languages for `set x to x + y`

. The sum will be, as hinted by its name, the sum of the numbers in `data`

.

NO `1+=2!=2`

it means
you are going to add `1+2`

.
But this will give you a syntax error.
Assume if a variable is int type int `a=1`

;
then
`a+=2`

; means `a=1+2`

; and increase the value of a from 1 to 3.

©2020 All rights reserved.