Signatur
Beschreibung
Der Multiplikationsoperator * ist ein binärer arithmetischer Operator, der zwei Operanden miteinander multipliziert und ihr Produkt zurückgibt. Er folgt den üblichen mathematischen Regeln der Multiplikation und wird in der Regel für numerische Berechnungen eingesetzt.
Sind beide Operanden Zahlen (Typ number), verhält sich * wie erwartet: 3 * 4 ergibt 12. Ist einer der Operanden NaN, ist das Ergebnis ebenfalls NaN. Bei der Multiplikation mit Infinity gelten die IEEE-754-Regeln: Infinity * 0 ergibt NaN, Infinity * 2 ergibt Infinity.
JavaScript führt bei Bedarf eine implizite Typumwandlung (Type Coercion) durch: Nicht-numerische Werte werden vor der Multiplikation in den Typ number konvertiert. So ergibt "3" * 4 den Wert 12, da der String "3" automatisch zur Zahl 3 umgewandelt wird. Strings, die keine gültige Zahl darstellen, werden zu NaN konvertiert, was das Gesamtergebnis ebenfalls zu NaN macht. Für BigInt-Werte gilt: Beide Operanden müssen vom Typ bigint sein — das Mischen von number und bigint wirft einen TypeError.
Der Operator besitzt eine höhere Rangfolge (Precedence) als Addition + und Subtraktion -, aber dieselbe wie Division / und Modulo %. Er ist linksassoziativ, d. h. 2 * 3 * 4 wird als (2 * 3) * 4 ausgewertet.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $x Pflicht | number | bigint | — | Der linke Operand. Nicht-numerische Werte werden implizit in number umgewandelt (außer bei bigint). |
| $y Pflicht | number | bigint | — | Der rechte Operand. Nicht-numerische Werte werden implizit in number umgewandelt (außer bei bigint). |
Rückgabewert
bigint, ist der Rückgabewert ebenfalls ein bigint, andernfalls ein number.Beispiele
Einfache Multiplikation mit Zahlen
const preis = 9.99;
const menge = 3;
const gesamt = preis * menge;
console.log(gesamt);
Implizite Typumwandlung (Type Coercion)
console.log("5" * 4); // String → number
console.log(true * 10); // boolean → number (true = 1)
console.log(false * 10); // boolean → number (false = 0)
console.log(null * 7); // null → 0
console.log("abc" * 2); // ungültiger String → NaN
Multiplikation mit Infinity und NaN
console.log(Infinity * 2); // positiv unendlich
console.log(Infinity * -1); // negativ unendlich
console.log(Infinity * 0); // unbestimmt → NaN
console.log(NaN * 99); // NaN propagiert sich
Multiplikation mit BigInt
const a = 1000000000n;
const b = 1000000000n;
console.log(a * b); // kein Präzisionsverlust
try {
console.log(a * 2); // Mischen von bigint und number
} catch (e) {
console.error(e.message);
}
// Wichtig · Fallstricke
Gleitkomma-Präzision: Da JavaScript den IEEE-754-Standard für 64-Bit-Gleitkommazahlen verwendet, können bei der Multiplikation von Dezimalzahlen Rundungsfehler entstehen. Beispiel: 0.1 * 0.2 ergibt 0.020000000000000004 statt exakt 0.02. Für finanzkritische Berechnungen sollte man auf Ganzzahlen (z. B. Cent statt Euro) oder spezialisierte Bibliotheken wie decimal.js zurückgreifen.
Operator-Rangfolge: * hat Vorrang vor + und -. Zur besseren Lesbarkeit und zur Vermeidung von Fehlern empfehlen sich explizite Klammern bei gemischten Ausdrücken, z. B. (a + b) * c.
Nicht zu verwechseln mit dem Exponentierungsoperator **, der das Potenzieren übernimmt: 2 ** 10 ergibt 1024.