Signatur
Beschreibung
Math.SQRT2 ist eine statische, schreibgeschützte Dateneigenschaft des Math-Objekts. Sie enthält die Quadratwurzel von 2 als Gleitkommazahl mit doppelter Genauigkeit (IEEE 754): 1.4142135623730951.
Man braucht die Konstante überall dort, wo √2 in Formeln vorkommt, zum Beispiel bei der Diagonale eines Quadrats (Seitenlänge × √2), bei Drehungen um 45°, beim Normalisieren von diagonalen Bewegungsvektoren in Spielen, bei Papierformaten nach DIN 476 (Seitenverhältnis 1 : √2) oder in der Audio-Technik, wo Effektivwert und Spitzenwert einer Sinusschwingung um den Faktor √2 auseinanderliegen.
Weil SQRT2 eine statische Eigenschaft ist, greift man immer über Math.SQRT2 darauf zu. Math ist kein Konstruktor, und die Eigenschaft ist weder beschreibbar noch aufzählbar noch konfigurierbar. Gegenüber Math.sqrt(2) spart man sich einen Funktionsaufruf und macht die Absicht im Code klarer. Der Wert ist in beiden Fällen identisch.
Rückgabewert
number: 1.4142135623730951.Beispiele
Wert auslesen und mit Math.sqrt vergleichen
console.log(Math.SQRT2);
console.log(Math.SQRT2 === Math.sqrt(2));
console.log(Math.SQRT2 * Math.SQRT2);
Diagonale eines Quadrats berechnen
const diagonale = (seite) => seite * Math.SQRT2;
console.log(diagonale(10).toFixed(2));
console.log(`Kachel 256 px → Diagonale ${Math.round(diagonale(256))} px`);
Diagonale Bewegung in einem Spiel normalisieren
const speed = 5;
const move = (dx, dy) => {
// Bei diagonaler Bewegung wäre man sonst um den Faktor √2 zu schnell
const factor = dx !== 0 && dy !== 0 ? 1 / Math.SQRT2 : 1;
return { x: dx * speed * factor, y: dy * speed * factor };
};
console.log(move(1, 0));
console.log(move(1, 1));
Spitzenwert aus Effektivwert (Wechselspannung)
const effektivwert = 230; // Volt
const spitzenwert = effektivwert * Math.SQRT2;
console.log(`${spitzenwert.toFixed(1)} V`);
// Wichtig · Fallstricke
- Schreibgeschützt:
Math.SQRT2 = 2hat keine Wirkung. Im nicht-strikten Modus wird die Zuweisung stillschweigend ignoriert, im Strict Mode (auch in ES-Modulen und Klassen) wirft sie einenTypeError. - Gleitkomma-Genauigkeit: √2 ist irrational, deshalb ist der gespeicherte Wert nur eine Näherung.
Math.SQRT2 ** 2ergibt2.0000000000000004und nicht genau2. Für Vergleiche solltest du eine Toleranz verwenden, zum BeispielMath.abs(a - b) < Number.EPSILON. - Für 1/√2 gibt es die eigene Konstante
Math.SQRT1_2(≈ 0,7071). Sie ist lesbarer als1 / Math.SQRT2. - Die Groß- und Kleinschreibung zählt:
Math.sqrt2ergibtundefined, und damit werden Rechnungen zuNaN. - Die Konstante wird in allen JavaScript-Umgebungen unterstützt, also in allen Browsern, Node.js, Deno und Bun.