| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Remainder | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.
Der Rest-Operator (%) gibt den Rest zurck, der brig bleibt, wenn ein Operand durch einen zweiten Operand geteilt wird. Er bernimmt stets das Vorzeichen des Dividenden.
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
x % y
Der %-Operator ist fr zwei Arten von Operanden berladen: Zahl und BigInt. Zuerst zwingt er beide Operanden zu numerischen Werten und prft die Typen davon. Er fhrt einen BigInt-Rest durch, wenn beide Operanden zu BigInts werden; andernfalls fhrt er einen Zahlenrest durch. Ein TypeError wird ausgelst, wenn ein Operand zu einem BigInt wird, der andere aber zu einer Zahl.
Fr die Operation n % d wird n als Dividend und d als Divisor bezeichnet. Die Operation gibt NaN zurck, wenn einer der Operanden NaN ist, n Unendlich ist oder wenn d 0 ist. Andernfalls, wenn d Unendlich ist oder wenn n 0 ist, wird der Dividend n zurckgegeben.
Wenn beide Operanden ungleich null und endlich sind, wird der Rest r als r := n - d * q berechnet, wobei q die Ganzzahl ist, so dass r das gleiche Vorzeichen wie der Dividend n hat, whrend es so nah wie mglich bei 0 ist.
Beachten Sie, dass, obwohl '%' in den meisten Sprachen ein Restoperator ist, es in einigen (z.B. Python, Perl) ein Modulo-Operator ist. Modulo ist definiert als k := n - d * q, wobei q die Ganzzahl ist, so dass k das gleiche Vorzeichen wie der Divisor d hat, whrend es so nah wie mglich bei 0 ist. Bei zwei Werten mit gleichem Vorzeichen sind die beiden gleichwertig, aber wenn die Operanden unterschiedliche Vorzeichen haben, hat das Moduloergebnis immer das gleiche Vorzeichen wie der Divisor, whrend der Rest das gleiche Vorzeichen wie der Dividend hat, was dazu fhren kann, dass sie sich um eine Einheit von d unterscheiden. Um ein Modulo in JavaScript zu erhalten, verwenden Sie anstelle von n % d, ((n % d) + d) % d. In JavaScript wird die Modulo-Operation (die keinen eigenen Operator hat) verwendet, um den zweiten Operanden der bitweisen Schiebebetreiber (<<, >>, etc.) zu normalisieren, wodurch der Versatz immer einen positiven Wert annimmt.
Fr BigInt-Division wird ein RangeError ausgelst, wenn der Divisor y 0n ist. Dies liegt daran, dass der Zahlenrest bei Null NaN zurckgibt, aber BigInt kein Konzept von NaN hat.
13 % 5; // 3
1 % -2; // 1
1 % 2; // 1
2 % 3; // 2
5.5 % 2; // 1.5
3n % 2n; // 1n
-13 % 5; // -3
-1 % 2; // -1
-4 % 2; // -0
-3n % 2n; // -1n
NaN % 2; // NaN
Infinity % 2; // NaN
Infinity % 0; // NaN
Infinity % Infinity; // NaN
2 % Infinity; // 2
0 % Infinity; // 0
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-multiplicative-operators |
+)-)/)*)**)++)--)-)+)Der Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |