Math : méthode statique hypot()
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.hypot() retourne la racine carrée de la somme des carrés de ses arguments. Autrement dit,
Exemple interactif
console.log(Math.hypot(3, 4));
// Sortie attendue : 5
console.log(Math.hypot(5, 12));
// Sortie attendue : 13
console.log(Math.hypot(3, 4, 5));
// Sortie attendue : 7.0710678118654755
console.log(Math.hypot(-5));
// Sortie attendue : 5
Syntaxe
Math.hypot()
Math.hypot(value1)
Math.hypot(value1, value2)
Math.hypot(value1, value2, /* …, */ valueN)
Paramètres
value1, …,valueN-
Des nombres.
Valeur de retour
La racine carrée de la somme des carrés des arguments fournis. Retourne Infinity si l'un des arguments est égal à ±infini. Sinon, si au moins un des arguments est ou est converti en NaN, retourne NaN. Retourne 0 si aucun argument n'est fourni ou si tous les arguments sont ±0.
Description
Calculer l'hypoténuse d'un triangle rectangle, ou la grandeur d'un nombre complexe, utilise la formule Math.sqrt(v1*v1 + v2*v2), où v1 et v2 sont les longueurs des jambes du triangle, ou les composantes complexes d'un nombre complexe réel. La distance correspondante dans 2 dimensions ou plus peut être calculée en ajoutant plus de carrés sous la racine carrée : Math.sqrt(v1*v1 + v2*v2 + v3*v3 + v4*v4).
Cette fonction facilite et accélère ce calcul ; vous pouvez appeler Math.hypot(v1, v2) ou Math.hypot(v1, /* …, */, vN).
Math.hypot permet également d'éviter les problèmes de dépassement/sous-dépassement lorsque la valeur absolue de vos nombres est très élevée. Le plus grand nombre que vous pouvez représenter en JS est Number.MAX_VALUE, soit environ 10308. Si vos nombres sont supérieurs à environ 10154, leur carré donne l'infini. Par exemple, Math.sqrt(1e200*1e200 + 1e200*1e200) = Infinity. Si vous utilisez hypot() à la place, vous obtenez une meilleure réponse : Math.hypot(1e200, 1e200) = 1.4142...e+200. Cela vaut également pour les très petits nombres. Math.sqrt(1e-200*1e-200 + 1e-200*1e-200) = 0, mais Math.hypot(1e-200, 1e-200) = 1.4142...e-200.
Avec un seul argument, Math.hypot() est équivalent à Math.abs(). Math.hypot.length est égal à 2, ce qui indique de manière indirecte qu'elle est conçue pour gérer au moins deux paramètres.
Puisque hypot() est une méthode statique de Math, vous l'utilisez toujours sous la forme Math.hypot(), plutôt que comme une méthode d'un objet Math que vous avez créé (Math n'est pas un constructeur).
Exemples
>Utiliser Math.hypot()
Math.hypot(3, 4); // 5
Math.hypot(3, 4, 5); // 7.0710678118654755
Math.hypot(); // 0
Math.hypot(NaN); // NaN
Math.hypot(NaN, Infinity); // Infinity
Math.hypot(3, 4, "toto"); // NaN, puisque +'toto' => NaN
Math.hypot(3, 4, "5"); // 7.0710678118654755, puisque +'5' => 5
Math.hypot(-3); // 3, de la même manière que Math.abs(-3)
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-math.hypot> |
Compatibilité des navigateurs
Voir aussi
- La prothèse d'émulation de
Math.hypotdanscore-js(angl.) - La méthode statique
Math.abs() - La méthode statique
Math.pow() - La méthode statique
Math.sqrt()