Javascript Math – min, max
In Math liegen Wurzeln, Funktionen wie Sinus und Tangens, hier sind Javascript pi und Logarithmen zuhause und Math liefert das Minimum und Maximum einer Zahlenreihe, mit ES6 auch den max. bzw. min. Wert aus einem Array.
Die Methoden und Eigenschaften von Math () werden direkt verwendet: Math ist kein Konstruktor und kann nicht mit new benutzt werden. Alle Methoden und Eigenschaften des Math-Objekts sind statisch.
let x = 18.9; let y = 200; let z = 0.2345; let größter = Math.max(x,y,z); // Größter Wert let kleinster = Math.min(x,y,z); // Kleiner Wert
Math.min() gibt – wie nicht anders zu erwarten, die kleinste aus einer Serie von Zahlen zurück. Allerdings verlangt Math.min() individuelle Werte und verdaut z.B. kein Array mit mehreren Zahlen.
Math.min(1, 2, 3, 4); // 1 Math.min( [1, 2, 3, 4] ); // NaN
Da springt der ...spread-Operator ein, der einen Ausdruck auflöst und an Ort und Stelle in individuelle Elemente umwandelt.
Math.max(...array) // Maximum aus Array-Werten (drei Punkte: Spread-Operator) Math.min(...array) // Minimum aus Array-Werten (drei Punkte: Spread-Operator)
Math – Methoden
Math.abs(x) // absoluter Wert von x Math.acos(x) // Arcuscosinus von x als Bogenmaß Math.asin(x) // Arcussinus von x als Bogenmaß Math.atan(x) // Arcustangens, numerischer Wert zwischen -PI/2 und PI/2 Grad Math.atan2(y,x) // Arcustangens des Quotienten des Arguments Math.ceil(x) // Aufrunden zum nächsten Integer Math.cos(x) // Cosinus als Bogenmaß Math.exp(x) // Wert von ex – wobei e die Eulersche Zahl ist (~ 2,71828) Math.floor(x) // Abrunden auf die nächste ganze Zahl Math.log(x) // nat. Logarithmus zur Basis E Math.max(x,…,z) // Maximum aus Werten Math.min(x,…,z) // Min aus Werten Math.pow(x,y) // x hoch y Math.random() // Zufallszahl zwischen 0 und 1 Math.round(x) // Rundet auf oder ab zum nächsten Integer (kaufmännisches Runden) Math.sin(x) // Sinus von x als Bogenmaß Math.sqrt(x) // Quadratwurzel von x Math.tan(x) // Tangente an einem Winkel
Beispiel: Javascript Wurzel berechnen
Das Beispiel für Exponentiell und Wurzel ist der Satz des Pythagoras a2 + b2 = c2 und zu den praktischen Einsätzen gehört die Berechnung des Cropfaktors in der digitalen Fotografie.
<input type="number" id="wi" step="0.01"> <input type="number" id="hi" step="0.01"> <div style="margin-top: 1em">Normalbrennweite <span id="diag"></span></div> <div style="margin-top: 1em">Cropfaktor <span id="crop"></span></div>
const wi = document.querySelector("#wi"); const hi = document.querySelector("#hi"); let wi2 = 0; let hi2 = 0; wi.addEventListener ("change", function () { wi2 = Math.pow(this.value,2); if (hi2 != 0) { document.querySelector ("#diag").textContent = Math.sqrt(wi2 + hi2).toFixed(1); document.querySelector("#crop").textContent = (43 / Math.sqrt(wi2 + hi2)).toFixed(1); } }); hi.addEventListener ("change", function () { hi2 = Math.pow(this.value,2); if (wi2 != 0) { document.querySelector ("#diag").textContent = Math.sqrt(wi2 + hi2).toFixed(1); document.querySelector("#crop").textContent = (43 / Math.sqrt(wi2 + hi2)).toFixed(1); } });
- Bei Werten aus Eingabefeldern immer daran denken, dass Dezimalstellen mit einem Punkt "." anstelle des Kommas verarbeitet werden
- und prüfen, ob es sich um eine Zahl handelt (isNaN)
Beispiel Math.sin () – Sinus
Sinus und Cosinus sind Begriffe der Trigonometrie und beschreiben das Verhältnisse der Seiten in einem rechtwinkligen Dreieck im Verhältnis zum eingeschlossenen Winkel.
Für sich betrachtet, sind Sinus (Sinus kommt aus dem arabischen und heißt soviel wie Bogen) und Cosinus nichts weiter als einfache Zahlenwerte.
Math.sin(x) liefert für jede Eingabe eine Zahl zwischen -1 und +1. Gern für die Animation einer Schwingung mit Javascript genommen.
function SineWave(c) { let s = Math.sin(c); let x = 500 - c * 700; // Bewegung auf der x-Achse let y = s * 90 + 250; // Bewegung auf der y-Achse return [x, y]; };
Pi, Logarithmus, Euler
Math.PI // Zahl PI Math.E // Eulersche Konstante Math.LN2 // nat. Logarithmus zur Basis 2 Math.LN10 // nat. Logarithmus zur Basis 10 Math.LOG2E // konstanter Logarithmus von 2 Math.Log10E // konstanter Logarithmus von 10