Math.imul()

Статичний метод Math.imul() ("integer multiply" – множення цілих чисел) повертає результат C-подібного 32-бітного множення двох аргументів.

Спробуйте його в дії

Синтаксис

Math.imul(a, b)

Параметри

a

Перше число.

b

Друге число.

Повернене значення

Результат C-подібного 32-бітного множення переданих двох аргументів.

Опис

Math.imul() дає змогу множити 32-бітні цілі числа з традиційною для C семантикою. Цей функціонал корисний для таких проєктів, як Emscripten.

Оскільки imul() — це статичний метод об'єкта Math, його потрібно завжди використовувати через Math.imul(). Не слід звертатись до нього як до методу власноруч створеного екземпляра Math (Math не є конструктором).

Якщо використати в imul() звичайні числа з рухомою комою JavaScript, буде помітно суттєве падіння швидкодії коду. Це пов'язано з дорогим перетворенням для множення чисел з рухомою комою на цілі числа, а потім перетворенням цілочислового результату множення назад у число з рухомою комою. Проте при використанні 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

Специфікації

Сумісність із браузерами

desktop mobile server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
imul
Chrome Full support 28
Edge Full support 12
Firefox Full support 20
Internet Explorer No support No
Opera Full support 16
Safari Full support 7
WebView Android Full support 4.4
Chrome Android Full support 28
Firefox for Android Full support 20
Opera Android Full support 15
Safari on iOS Full support 7
Samsung Internet Full support 1.5
Deno Full support 1.0
Node.js Full support 0.12.0

Дивіться також