Math.imul()
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Статический метод Math.imul() возвращает результат 32-битного умножения двух параметров, как в языке C.
Попробуйте
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
Синтаксис
Math.imul(a, b)
Параметры
-
a - Первое число.
-
b - Второе число.
Возвращаемое значение
Результат 32-битного умножения предоставленных аргументов, как в языке C.
Описание
Math.imul() позволяет выполнять 32-битное умножение целых чисел с семантикой, схожей с языком C. Эта функция полезна для таких проектов, как Emscripten.
Поскольку imul() является статическим методом Math, вы всегда используете его как Math.imul(), а не как метод созданного вами объекта Math (Math не является конструктором).
Если вы используете обычные числа с плавающей запятой JavaScript в imul(), вы столкнетесь со снижением производительности. Это связано с затратным преобразованием из числа с плавающей запятой в целое число для умножения, а затем обратно из целого числа в число с плавающей запятой. Однако с asm.js, который позволяет JIT-оптимизаторам более уверенно использовать целые числа в JavaScript, умножение двух чисел, хранящихся внутри как целые числа (что возможно только с asm.js), с помощью imul() может быть потенциально более производительным.
Примеры
Использование 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
Спецификации
| Спецификация |
|---|
| Спецификация языка ECMAScript® 2027 # sec-math.imul |
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
imul |
28 |
12 |
20 |
16 |
7 |
28 |
20 |
15 |
7 |
1.5 |
4.4 |
7 |
1.0.0 |
1.0 |
0.12.0 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul