Co robi% w JavaScript?Co robi% w JavaScript?
Definicja tego, czym jest i co robi, byłaby bardzo doceniana.
Co robi% w JavaScript?Co robi% w JavaScript?
Definicja tego, czym jest i co robi, byłaby bardzo doceniana.
jest to modulo operator. Więcej informacji na temat operatorów arytmetycznych JavaScript znajduje się pod tym numerem: documentation lub.
% (Moduł sprężystości)
Operator moduł stosuje się w następujący sposób:
Var1% var2
Operator moduł powraca pierwszy argument operacji modulo drugi argumentu operacji, to jest , var1 modulo var2, w poprzednim komunikacie, gdzie var1 i var2 są zmiennymi. Funkcja modulo jest liczbą całkowitą pozostałą część dzielącą war1 przez var2. Na przykład 12% 5 zwraca 2. Wynik będzie miał taki sam znak jak war1; czyli -1% 2 zwraca -1.
Operator modu (%) zwraca pozostałą część.
Jeśli któraś z wartości jest łańcuchem, podejmowana jest próba przekonwertowania ciągu na liczbę.
alert(5%3)
powiadomi 2
Zwraca resztę z operacji dzielenia. 5%2
powraca 1
jest operatorem modulo.
Oblicza pozostałą część.
Jeśli do 23% 10,
pierwszy podzielić 23 przez 10, która jest równa 2,3
następnie .3 * (dzielnik) 10
= 3
% występuje jako operator modulo, przypomnienie o powrocie. Przykład:
To ostrzeże 1.
ES6 Update:
Jak wyjaśniono w innych odpowiedzi, zwraca pozostałą po podzieleniu dywidendy przez dzielnik, to jednak nie jest operatorem modulo jest remainder operator.tą różnicą, że w wyniku operatora modulo przyjąłby znak dzielnika, a nie dywidendy.Cyt z MDN
Operator zwraca pozostała reszta w lewo kończy się, gdy jeden argument jest podzielone przez drugi argument operacji. Zawsze przyjmuje znak dywidendy, a nie dzielnik. Używa wbudowanej funkcji modulo do wygenerowania wyniku, który jest całkowitą pozostałością dzielenia
var1
przezvar2
- na przykład -var1 modulo var2
. There is a proposal to get an actual modulo operator in a future version of ECMAScript, z tą różnicą, że wynik operatora modulo przyjmowałby znak dzielnika, a nie dywidendy.
Przykład:
-10 % 3 // -1
10 % -3 // 1
Tylko w przypadku, jeśli ktoś szuka funkcji prawdziwy modulo (która zawsze dostanie znak dzielnik), można użyć tego:
function Modulo(num, denom)
{
if (num%denom >= 0)
{
return Math.abs(num%denom);
}
else
{
return num%denom + denom;
}
}
The Math.abs ma zapobiec przypadkowi -12% 12 → -0, które jest uważane za równe 0, ale wyświetlane jako -0.
Jeśli oczekujesz, że operator zwróci liczbę całkowitą (np. Dla obliczeń kalendarza), Należy obciąć war1 i var2 na liczby całkowite przed zastosowaniem% -operatora. Modolus jest zdefiniowany w ten sposób i nie można użyć%, jaki jest. Ex: Pobierz ostatnią niedzielę marca 2017. '31 - (((((5 * 2017)/4) + 4)% 7)) == 25.75 // Nieaktualna data 31 - (~~ ((((5 * 2017)/4) + 4)% 7)) == 26 // Prawidłowo " –