2012-01-17 25 views

Respuesta

25

Es un modulo operator. Consulte esto documentation o the specification para obtener más información sobre los operadores aritméticos de JavaScript.

% (módulo)

El operador de módulo se utiliza como sigue:

var1% var2

El operador módulo devuelve el primer operando módulo el segundo operando, es decir , var1 modulo var2, en la instrucción anterior, donde var1 y var2 son variables. La función de módulo es el entero restante de dividir var1 por var2. Por ejemplo, 12% 5 devuelve 2. El resultado tendrá el mismo signo que var1; es decir, -1% 2 devuelve -1.

+0

Si espera que el operador devuelva un número entero (por ejemplo, para cálculos de calendario), Uno debe truncar var1 y var2 en enteros antes de aplicar% -operator. Modolus se define así, y uno no podría usar% como es. Ej .: Obtener el último domingo de marzo de 2017. '31 - (((((5 * 2017)/4) + 4)% 7)) == 25.75 // No es una fecha válida 31 - (~~ ((((5 * 2017)/4) + 4)% 7)) == 26 // Correcto' –

6

Esa sería la modulo operator.

Devuelve el resto de una operación de división:

var remainder = 3 % 2; // equals 1 
3

El operador del módulo (%) devuelve el resto.

Si el valor es una cadena, se intenta convertir la cadena en un número.

alert(5%3) le alertará 2

9

Devuelve el resto de una operación de división. 5%2 devuelve 1

6

Es un operador de módulo .
Calcula el resto.

Si hacemos un 23% 10,
primera, se divide 23 por 10, que es igual a 2,3
luego tomar 0,3 * (el divisor) 10
= 3

1

% realiza como el operador de módulo, recordatorio de división de retorno. Ejemplo:

<script> 
    var x = 5; 
    var y = 2; 
    var z = x % y; 
    alert(z); 
</script> 

Esto alertará 1.

8

ES6 Actualización:

Como se ha explicado en otras respuestas, devuelve el resto después de dividir el dividendo por el divisor, sin embargo, esto ya no es operador de módulo, esto es remainder operator.la diferencia de que el resultado operador de módulo tomaría el signo del divisor, no el dividendo.citado de MDN

El operador resto devuelve el resto queda cuando un operando está dividida por un segundo operando. Siempre toma el signo del dividendo, no el divisor. Utiliza una función de módulo incorporada para producir el resultado, que es el resto del número entero que divide var1 por var2 - por ejemplo - var1 modulo var2. There is a proposal to get an actual modulo operator in a future version of ECMAScript, la diferencia es que el resultado del operador del módulo tomaría el signo del divisor, no el dividendo.

Ejemplo:

-10 % 3 // -1 
10 % -3 // 1 
2

Por si acaso, si alguien está buscando una función real de módulo (que siempre sería obtener la señal del divisor), puede utilizar esto:

function Modulo(num, denom) 
{ 
    if (num%denom >= 0) 
    { 
     return Math.abs(num%denom); 
    } 
    else 
    { 
     return num%denom + denom; 
    } 
} 

Math.abs es para evitar el caso -12% 12 → -0, que se considera igual a 0 pero se muestra como -0.