Math : méthode statique imul()
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthode statique Math.imul() retourne le résultat de la multiplication sur 32 bits à la manière du langage C des deux paramètres.
Exemple interactif
console.log(Math.imul(3, 4));
// Sortie attendue : 12
console.log(Math.imul(-5, 12));
// Sortie attendue : -60
console.log(Math.imul(0xffffffff, 5));
// Sortie attendue : -5
console.log(Math.imul(0xfffffffe, 5));
// Sortie attendue : -10
Syntaxe
Math.imul(a, b)
Paramètres
Valeur de retour
Le résultat de la multiplication sur 32 bits des valeurs passées en argument (comme en C).
Description
La méthode Math.imul() permet une multiplication d'entiers sur 32 bits avec une sémantique proche du langage C. Cette fonctionnalité est utile pour des projets comme Emscripten (angl.).
Parce que imul() est une méthode statique de Math, il faut toujours l'utiliser sous la forme Math.imul(), plutôt que comme méthode d'un objet Math que vous avez créé (Math n'est pas un constructeur).
Si vous utilisez des nombres flottants JavaScript normaux dans imul(), vous constatez une dégradation des performances. Cela est dû à la coûteuse conversion d'un flottant en entier pour la multiplication, puis à la conversion de l'entier multiplié en flottant. Cependant, avec asm.js, qui permet aux optimiseurs JIT d'utiliser plus efficacement les entiers en JavaScript, multiplier deux nombres stockés en interne en tant qu'entiers (ce qui n'est possible qu'avec asm.js) avec imul() peut être potentiellement plus performant.
Exemples
>Utiliser 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
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-math.imul> |