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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Remainder (%)

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Ver también