Math.imul()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die statische Methode Math.imul() gibt das Ergebnis der C-ähnlichen 32-Bit-Multiplikation der beiden Parameter zurück.
Probieren Sie es aus
console.log(Math.imul(3, 4));
// Expected output: 12
console.log(Math.imul(-5, 12));
// Expected output: -60
console.log(Math.imul(0xffffffff, 5));
// Expected output: -5
console.log(Math.imul(0xfffffffe, 5));
// Expected output: -10
Syntax
Math.imul(a, b)
Parameter
Rückgabewert
Das Ergebnis der C-ähnlichen 32-Bit-Multiplikation der gegebenen Argumente.
Beschreibung
Math.imul() ermöglicht eine 32-Bit-Ganzzahlmultiplikation mit C-ähnlicher Semantik. Diese Funktion ist nützlich für Projekte wie Emscripten.
Da imul() eine statische Methode von Math ist, verwenden Sie sie immer als Math.imul() und nicht als Methode eines von Ihnen erstellten Math-Objekts (Math ist kein Konstruktor).
Wenn Sie normale JavaScript-Gleitkommazahlen in imul() verwenden, werden Sie einen Leistungsverlust feststellen. Dies liegt an der kostenintensiven Umwandlung von einer Gleitkommazahl in eine Ganzzahl zur Multiplikation und der anschließenden Rückumwandlung der multiplizierten Ganzzahl in eine Gleitkommazahl. Mit asm.js, das JIT-Optimierern erlaubt, sicherer Ganzzahlen in JavaScript zu verwenden, kann die Multiplikation von zwei im Inneren als Ganzzahlen gespeicherten Zahlen (was nur mit asm.js möglich ist) mit imul() potenziell leistungsfähiger sein.
Beispiele
>Verwendung von Math.imul()
Math.imul(2, 4); // 8
Math.imul(-1, 8); // -8
Math.imul(-2, -2); // 4
Math.imul(0xffffffff, 5); // -5
Math.imul(0xfffffffe, 5); // -10
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2026 Language Specification> # sec-math.imul> |