Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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,

𝙼𝚊𝚝𝚑.𝚑𝚢𝚙𝚘𝚝(v1,v2,,vn)=i=1nvi2=v12+v22++vn2\mathtt{\operatorname{Math.hypot}(v_1, v_2, \dots, v_n)} = \sqrt{\sum_{i=1}^n v_i^2} = \sqrt{v_1^2 + v_2^2 + \dots + v_n^2}

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

js
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()

js
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