Remainder assignment (%=)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Theremainder assignment (%=) operator performsremainder on the two operands and assigns the result to the left operand.
In this article
Try it
let a = 3;console.log((a %= 2));// Expected output: 1console.log((a %= 0));// Expected output: NaNconsole.log((a %= "hello"));// Expected output: NaNSyntax
js
x %= yDescription
x %= y is equivalent tox = x % y, except that the expressionx is only evaluated once.
Examples
>Using remainder assignment
js
let bar = 5;bar %= 2; // 1bar %= "foo"; // NaNbar %= 0; // NaNlet foo = 3n;foo %= 2n; // 1nSpecifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-assignment-operators> |