Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die statische Methode Math.hypot() gibt die Quadratwurzel der Summe der Quadrate ihrer Argumente zurück. Das heißt,
𝙼𝚊𝚝𝚑.𝚑𝚢𝚙𝚘𝚝(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}Zahlen.
Die Quadratwurzel der Summe der Quadrate der angegebenen Argumente. Gibt Infinity zurück, wenn eines der Argumente ±Infinity ist. Andernfalls, wenn mindestens eines der Argumente NaN ist oder in NaN umgewandelt wird, gibt es NaN zurück. Gibt 0 zurück, wenn keine Argumente angegeben sind oder alle Argumente ±0 sind.
Die Berechnung der Hypotenuse eines rechtwinkligen Dreiecks oder die Größe einer komplexen Zahl verwendet die Formel Math.sqrt(v1*v1 + v2*v2), wobei v1 und v2 die Längen der Dreiecksseiten sind oder die realen und komplexen Komponenten der komplexen Zahl. Die entsprechende Entfernung in 2 oder mehr Dimensionen kann berechnet werden, indem weitere Quadrate unter der Quadratwurzel hinzugefügt werden: Math.sqrt(v1*v1 + v2*v2 + v3*v3 + v4*v4).
Diese Funktion macht diese Berechnung einfacher und schneller; Sie rufen Math.hypot(v1, v2) oder Math.hypot(v1, /* …, */, vN) auf.
Math.hypot vermeidet auch Probleme mit Überläufen/Unterläufen, wenn die Größenordnung Ihrer Zahlen sehr groß ist. Die größte Zahl, die Sie in JS darstellen können, ist Number.MAX_VALUE, die ungefähr 10308 ist. Wenn Ihre Zahlen größer als ungefähr 10154 sind, führt das Quadrieren dieser Zahlen zu Infinity. Zum Beispiel Math.sqrt(1e200*1e200 + 1e200*1e200) = Infinity. Wenn Sie stattdessen hypot() verwenden, erhalten Sie eine bessere Antwort: Math.hypot(1e200, 1e200) = 1.4142...e+200. Dies gilt auch für sehr kleine Zahlen. Math.sqrt(1e-200*1e-200 + 1e-200*1e-200) = 0, aber Math.hypot(1e-200, 1e-200) = 1.4142...e-200.
Mit einem Argument ist Math.hypot() äquivalent zu Math.abs(). Math.hypot.length ist 2, was schwach signalisiert, dass es so konzipiert ist, dass es mindestens zwei Parameter verarbeitet.
Da hypot() eine statische Methode von Math ist, verwenden Sie es immer als Math.hypot(), anstatt als Methode eines von Ihnen erstellten Math-Objekts (Math ist kein Konstruktor).
| ECMAScript® 2027 Language Specification # sec-math.hypot |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.