Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Ausdrücke und Operatoren
  5. Rest (%)

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

Rest (%)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

DerRest-Operator (%) gibt den Rest zurück, der übrig bleibt, wenn ein Operand durch einen zweiten Operand geteilt wird. Er übernimmt stets das Vorzeichen des Dividenden.

Probieren Sie es aus

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

Syntax

js
x % y

Beschreibung

Der%-Operator ist für zwei Arten von Operanden überladen: Zahl undBigInt. Zuerstzwingt er beide Operanden zu numerischen Werten und prüft die Typen davon. Er führt einen BigInt-Rest durch, wenn beide Operanden zu BigInts werden; andernfalls führt er einen Zahlenrest durch. EinTypeError wird ausgelöst, wenn ein Operand zu einem BigInt wird, der andere aber zu einer Zahl.

Für die Operationn % d wirdn als Dividend undd als Divisor bezeichnet. Die Operation gibtNaN zurück, wenn einer der OperandenNaN ist,n ±Unendlich ist oder wennd ±0 ist. Andernfalls, wennd ±Unendlich ist oder wennn ±0 ist, wird der Dividendn zurückgegeben.

Wenn beide Operanden ungleich null und endlich sind, wird der Restr alsr := n - d * q berechnet, wobeiq die Ganzzahl ist, so dassr das gleiche Vorzeichen wie der Dividendn hat, während es so nah wie möglich 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 alsk := n - d * q, wobeiq die Ganzzahl ist, so dassk das gleiche Vorzeichen wie der Divisord hat, während es so nah wie möglich 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 derDivisor, während der Rest das gleiche Vorzeichen wie derDividend hat, was dazu führen kann, dass sie sich um eine Einheit vond unterscheiden. Um ein Modulo in JavaScript zu erhalten, verwenden Sie anstelle vonn % 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.

Für BigInt-Division wird einRangeError ausgelöst, wenn der Divisory0n ist. Dies liegt daran, dass der Zahlenrest bei NullNaN zurückgibt, aber BigInt kein Konzept vonNaN hat.

Beispiele

Rest mit positivem Dividend

js
13 % 5; // 31 % -2; // 11 % 2; // 12 % 3; // 25.5 % 2; // 1.53n % 2n; // 1n

Rest mit negativem Dividend

js
-13 % 5; // -3-1 % 2; // -1-4 % 2; // -0-3n % 2n; // -1n

Rest mit NaN

js
NaN % 2; // NaN

Rest mit Unendlichkeit

js
Infinity % 2; // NaNInfinity % 0; // NaNInfinity % Infinity; // NaN2 % Infinity; // 20 % Infinity; // 0

Spezifikationen

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

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp