JAVASCRIPT

JavaScript Modulo Operator: Syntax, Usage, and Examples

The JavaScript modulo operator is a mathematical operator used to return the remainder after division of one number by another. It is one of the core arithmetic operators in JavaScript, yet it’s often misunderstood—particularly when working with negative numbers or in more advanced programming scenarios like loops, algorithms, and conditional checks.

Mastering the modulo operator will improve your problem-solving skills in areas like number theory, data wrapping, clock arithmetic, and array indexing.


Syntax of the JavaScript Modulo Operator

The syntax of the JavaScript modulo operator is similar to that of basic arithmetic operators:

a % b

Here:

  • a is the dividend (the number being divided)
  • b is the divisor (the number you are dividing by)
  • The expression returns the remainder after the division

This operator uses the percentage symbol (%), which might confuse beginners who associate it with percentage calculations. In JavaScript, it strictly performs a remainder operation.


What the Modulo Operator Does

The JavaScript modulo operator returns the remainder left over when one number is divided by another. It does not perform rounding or any type of fractional calculation—just a pure remainder.

Example

console.log(10 % 3); // 1

In this case, 10 divided by 3 equals 3 with a remainder of 1, so 10 % 3 returns 1.

Another Example

console.log(15 % 5); // 0

Here, 15 is evenly divisible by 5, so the remainder is 0.


How the Modulo Operator Works with Negative Numbers

The modulo operator in JavaScript can behave differently with negative numbers compared to some other programming languages. JavaScript follows the rule that the sign of the result matches the sign of the dividend (left operand).

Examples

console.log(-10 % 3);  // -1
console.log(10 % -3);  // 1
console.log(-10 % -3); // -1

In all of these cases, the result retains the sign of the left-hand operand.

This behavior is crucial when you're performing logic that depends on the result being positive—for example, wrapping array indices or creating cyclic counters. In such cases, extra handling is required to ensure positive results.


Ensuring a Positive Remainder

To always get a non-negative result regardless of the input sign, you can modify the expression like this:

function mod(n, m) {
  return ((n % m) + m) % m;
}

mod(-10, 3); // 2

This technique is useful when working with modular arithmetic in contexts like geometry, graphics, or date and time calculations.


Use Cases for the JavaScript Modulo Operator

The modulo operator JavaScript provides is useful in many scenarios, from basic math to advanced programming patterns. Here are some common examples.

1. Checking Even or Odd Numbers

One of the most popular use cases is determining whether a number is even or odd:

function isEven(n) {
  return n % 2 === 0;
}

function isOdd(n) {
  return n % 2 !== 0;
}

2. Looping Patterns

Modulo can be used to trigger events at regular intervals within a loop:

for (let i = 1; i <= 10; i++) {
  if (i % 3 === 0) {
    console.log(i + " is divisible by 3");
  }
}

3. Wrapping Values

You can use the modulo operator to wrap around values. For example, you might want to cycle through days of the week or restrict a number to a fixed range:

const days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
let index = (10 % days.length);
console.log(days[index]); // "Wed"

Behavior with Floating Point Numbers

The modulo operator works with floating point numbers, although precision issues may arise due to how JavaScript handles decimals.

Example

console.log(5.5 % 2); // 1.5

Here, 5.5 divided by 2 equals 2 with a remainder of 1.5, so the result is 1.5. This can be useful for calculations involving time, distance, or currency when fractional remainders are meaningful.

However, be aware that floating point arithmetic can lead to rounding issues:

console.log(0.1 % 0.01); // 0.009999999999999995

Differences Between Modulo and Remainder in Other Languages

While JavaScript uses % for its modulo operator, not all languages treat it the same way. For example, in Python or C, the % operator may behave differently with negative numbers.

If you're translating code from another language, test how the modulo behaves to ensure compatibility.


Common Mistakes and Gotchas

Misunderstanding Sign Behavior

New developers often expect 10 % -3 to be -1. However, JavaScript returns 1 because the sign follows the dividend.

Using It for Percentages

Remember that % in JavaScript does not calculate percentages. To get 20% of a value, use multiplication:

let price = 100;
let discount = price * 0.2; // Not price % 20

Forgetting to Normalize Negative Results

When using % for things like array indexing or grid positioning, negative results may lead to errors unless adjusted using a normalization function.


Practical Examples in UI and Games

Alternating Row Colors

Use the modulo operator to assign even and odd row colors in UI tables:

rows.forEach((row, index) => {
  row.style.backgroundColor = index % 2 === 0 ? "#fff" : "#eee";
});

Looping Sprite Animations

In games, the modulo operator can reset an animation frame counter:

frame = (frame + 1) % totalFrames;

Combining Modulo with Other Operators

You can use the modulo operator alongside division or increment operations to add logic to your programs:

let counter = 0;
setInterval(() => {
  counter++;
  if (counter % 5 === 0) {
    console.log("Trigger every 5 seconds");
  }
}, 1000);

Summary

The JavaScript modulo operator is a simple yet powerful tool for performing remainder operations. It supports both integers and floating point numbers, handles negative values based on the dividend’s sign, and is commonly used in conditional logic, looping structures, and UI design.

By understanding the underlying behavior of the modulo operator JavaScript provides, you can write more accurate and expressive code for math-heavy tasks, logic gates, and modular computations.

When working with cyclical patterns, enforcing numeric constraints, or validating data, the modulo operator proves to be an essential building block in every JavaScript developer’s toolkit.

Learn to Code in JavaScript for Free
Start learning now
button icon
To advance beyond this tutorial and learn JavaScript by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH

Reach your coding goals faster