This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The += operator performs addition (which is either numeric addition or string concatenation) on the two operands and assigns the result to the left operand.
let a = 2; let b = "hello"; console.log((a += 3)); // Addition // Expected output: 5 console.log((b += " world")); // Concatenation // Expected output: "hello world"
x += y
x += y is equivalent to x = x + y, except that the expression x is only evaluated once.
let bar = 5; bar += 2; // 7
Other non-string, non-BigInt values are coerced to numbers:
let baz = true; baz += 1; // 2 baz += false; // 2
let x = 1n; x += 2n; // 3n x += 1; // TypeError: Cannot mix BigInt and other types, use explicit conversions
let foo = "foo"; foo += false; // "foofalse" foo += "bar"; // "foofalsebar" let bar = 5; bar += "foo"; // "5foo"
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
Addition_assignment |
1 | 12 | 1 | 3 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 | 1 | 1.0.0 | 1.0 | 0.10.0 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Addition_assignment