Resto (%)

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.

El operador resto (%) devuelve el resto de la división entre dos operandos. Siempre toma el signo del dividendo.

Pruébalo

console.log(13 % 5);
// Expected output: 3

console.log(-13 % 5);
// Expected output: -3

console.log(4 % 2);
// Expected output: 0

console.log(-4 % 2);
// Expected output: -0

El código fuente para este ejemplo interactivo se encuentra en un repositorio de GitHub. Si quieres contribuir al proyecto de ejemplos interactivas, por favor clona https://github.com/mdn/interactive-examples y realiza un pull request.

Tener en cuenta que en la mayoría de los lenguajes de programación, el operador de resto es '%', pero en otros (como Python, Perl) es el operador módulo. Ambos son iguales para valores positivos, pero cuando el divisor y el dividendo son de signos distintos, se obtienen distintos resultados. Para obtener el módulo en JavaScript, en lugar de a % n, usa ((a % n ) + n ) % n.

Sintaxis

Operador: var1 % var2

Ejemplos

Resto con dividendo positivo

js
12 % 5; //  2
1 % -2; //  1
1 % 2; //  1
2 % 3; //  2
5.5 % 2; // 1.5

Resto con dividendo negativo

js
-12 % 5 // -2
-1 % 2  // -1
-4 % 2  // -0

Resto con NaN

js
NaN % 2; // NaN

Resto con Infinity

js
Infinity % 2; // NaN
Infinity % 0; // NaN
Infinity % Infinity; // NaN

Especificaciones

Specification
ECMAScript® 2025 Language Specification
# sec-multiplicative-operators

Compatibilidad con navegadores

BCD tables only load in the browser

Ver también