File size: 1,703 Bytes
780c9fe |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
---
title: Addition assignment (+=)
slug: Web/JavaScript/Reference/Operators/Addition_assignment
page-type: javascript-operator
browser-compat: javascript.operators.addition_assignment
sidebar: jssidebar
---
The **addition assignment (`+=`)** operator performs [addition](/en-US/docs/Web/JavaScript/Reference/Operators/Addition) (which is either numeric addition or string concatenation) on the two operands and assigns the result to the left operand.
{{InteractiveExample("JavaScript Demo: Addition assignment (+=) operator")}}
```js interactive-example
let a = 2;
let b = "hello";
console.log((a += 3)); // Addition
// Expected output: 5
console.log((b += " world")); // Concatenation
// Expected output: "hello world"
```
## Syntax
```js-nolint
x += y
```
## Description
`x += y` is equivalent to `x = x + y`, except that the expression `x` is only evaluated once.
## Examples
### Addition assignment using numbers
```js
let bar = 5;
bar += 2; // 7
```
Other non-string, non-BigInt values are coerced to numbers:
```js
let baz = true;
baz += 1; // 2
baz += false; // 2
```
### Addition assignment using BigInts
```js
let x = 1n;
x += 2n; // 3n
x += 1; // TypeError: Cannot mix BigInt and other types, use explicit conversions
```
### Addition assignment using strings
```js
let foo = "foo";
foo += false; // "foofalse"
foo += "bar"; // "foofalsebar"
let bar = 5;
bar += "foo"; // "5foo"
```
## Specifications
{{Specifications}}
## Browser compatibility
{{Compat}}
## See also
- [Assignment operators in the JS guide](/en-US/docs/Web/JavaScript/Guide/Expressions_and_operators#assignment_operators)
- [Addition (`+`)](/en-US/docs/Web/JavaScript/Reference/Operators/Addition)
|