Math.imul()

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

Math.imul() 靜態方法返回 C 語言風格的 32 位整數乘法運算結果。

試一試

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

語法

js
Math.imul(a, b)

引數

a

第一個數字。

b

第二個數字。

返回值

給定引數的 C 語言風格 32 位整數乘法運算結果。

描述

Math.imul() 允許進行具有 C 語言風格語義的 32 位整數乘法。此功能對於 Emscripten 等專案非常有用。

因為 imul()Math 的靜態方法,所以您總是使用 Math.imul() 來呼叫它,而不是透過您建立的 Math 物件的方法來呼叫(Math 不是建構函式)。

如果您在 imul() 中使用普通的 JavaScript 浮點數,效能會下降。這是因為將浮點數轉換為整數進行乘法運算,然後再將乘積轉換回浮點數是一個耗時的過程。然而,對於 asm.js,它允許 JIT 最佳化器更確信地在 JavaScript 中使用整數,使用 imul() 乘法兩個內部儲存為整數(這僅透過 asm.js 實現)的數字,效能可能會更高。

示例

使用 Math.imul()

js
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

規範

規範
ECMAScript® 2026 語言規範
# sec-math.imul

瀏覽器相容性

另見